summaryrefslogtreecommitdiff
path: root/date-fns/src/locale/ru
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2021-08-23 16:46:06 -0300
committerSebastian <sebasjm@gmail.com>2021-08-23 16:48:30 -0300
commit38acabfa6089ab8ac469c12b5f55022fb96935e5 (patch)
tree453dbf70000cc5e338b06201af1eaca8343f8f73 /date-fns/src/locale/ru
parentf26125e039143b92dc0d84e7775f508ab0cdcaa8 (diff)
downloadnode-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.tar.gz
node-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.tar.bz2
node-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.zip
added web vendorsHEADmaster
Diffstat (limited to 'date-fns/src/locale/ru')
-rw-r--r--date-fns/src/locale/ru/_lib/formatDistance/index.js247
-rw-r--r--date-fns/src/locale/ru/_lib/formatLong/index.js38
-rw-r--r--date-fns/src/locale/ru/_lib/formatRelative/index.js88
-rw-r--r--date-fns/src/locale/ru/_lib/localize/index.js210
-rw-r--r--date-fns/src/locale/ru/_lib/match/index.js138
-rw-r--r--date-fns/src/locale/ru/index.d.ts4
-rw-r--r--date-fns/src/locale/ru/index.js29
-rw-r--r--date-fns/src/locale/ru/index.js.flow35
-rw-r--r--date-fns/src/locale/ru/snapshot.md304
9 files changed, 1093 insertions, 0 deletions
diff --git a/date-fns/src/locale/ru/_lib/formatDistance/index.js b/date-fns/src/locale/ru/_lib/formatDistance/index.js
new file mode 100644
index 0000000..686777d
--- /dev/null
+++ b/date-fns/src/locale/ru/_lib/formatDistance/index.js
@@ -0,0 +1,247 @@
+function declension(scheme, count) {
+ // scheme for count=1 exists
+ if (scheme.one !== undefined && count === 1) {
+ return scheme.one
+ }
+
+ var rem10 = count % 10
+ var rem100 = count % 100
+
+ // 1, 21, 31, ...
+ if (rem10 === 1 && rem100 !== 11) {
+ return scheme.singularNominative.replace('{{count}}', count)
+
+ // 2, 3, 4, 22, 23, 24, 32 ...
+ } else if (rem10 >= 2 && rem10 <= 4 && (rem100 < 10 || rem100 > 20)) {
+ return scheme.singularGenitive.replace('{{count}}', count)
+
+ // 5, 6, 7, 8, 9, 10, 11, ...
+ } else {
+ return scheme.pluralGenitive.replace('{{count}}', count)
+ }
+}
+
+function buildLocalizeTokenFn(scheme) {
+ return function(count, options) {
+ if (options.addSuffix) {
+ if (options.comparison > 0) {
+ if (scheme.future) {
+ return declension(scheme.future, count)
+ } else {
+ return 'через ' + declension(scheme.regular, count)
+ }
+ } else {
+ if (scheme.past) {
+ return declension(scheme.past, count)
+ } else {
+ return declension(scheme.regular, count) + ' назад'
+ }
+ }
+ } else {
+ return declension(scheme.regular, count)
+ }
+ }
+}
+
+var formatDistanceLocale = {
+ lessThanXSeconds: buildLocalizeTokenFn({
+ regular: {
+ one: 'меньше секунды',
+ singularNominative: 'меньше {{count}} секунды',
+ singularGenitive: 'меньше {{count}} секунд',
+ pluralGenitive: 'меньше {{count}} секунд'
+ },
+ future: {
+ one: 'меньше, чем через секунду',
+ singularNominative: 'меньше, чем через {{count}} секунду',
+ singularGenitive: 'меньше, чем через {{count}} секунды',
+ pluralGenitive: 'меньше, чем через {{count}} секунд'
+ }
+ }),
+
+ xSeconds: buildLocalizeTokenFn({
+ regular: {
+ singularNominative: '{{count}} секунда',
+ singularGenitive: '{{count}} секунды',
+ pluralGenitive: '{{count}} секунд'
+ },
+ past: {
+ singularNominative: '{{count}} секунду назад',
+ singularGenitive: '{{count}} секунды назад',
+ pluralGenitive: '{{count}} секунд назад'
+ },
+ future: {
+ singularNominative: 'через {{count}} секунду',
+ singularGenitive: 'через {{count}} секунды',
+ pluralGenitive: 'через {{count}} секунд'
+ }
+ }),
+
+ halfAMinute: function(_, options) {
+ if (options.addSuffix) {
+ if (options.comparison > 0) {
+ return 'через полминуты'
+ } else {
+ return 'полминуты назад'
+ }
+ }
+
+ return 'полминуты'
+ },
+
+ lessThanXMinutes: buildLocalizeTokenFn({
+ regular: {
+ one: 'меньше минуты',
+ singularNominative: 'меньше {{count}} минуты',
+ singularGenitive: 'меньше {{count}} минут',
+ pluralGenitive: 'меньше {{count}} минут'
+ },
+ future: {
+ one: 'меньше, чем через минуту',
+ singularNominative: 'меньше, чем через {{count}} минуту',
+ singularGenitive: 'меньше, чем через {{count}} минуты',
+ pluralGenitive: 'меньше, чем через {{count}} минут'
+ }
+ }),
+
+ xMinutes: buildLocalizeTokenFn({
+ regular: {
+ singularNominative: '{{count}} минута',
+ singularGenitive: '{{count}} минуты',
+ pluralGenitive: '{{count}} минут'
+ },
+ past: {
+ singularNominative: '{{count}} минуту назад',
+ singularGenitive: '{{count}} минуты назад',
+ pluralGenitive: '{{count}} минут назад'
+ },
+ future: {
+ singularNominative: 'через {{count}} минуту',
+ singularGenitive: 'через {{count}} минуты',
+ pluralGenitive: 'через {{count}} минут'
+ }
+ }),
+
+ aboutXHours: buildLocalizeTokenFn({
+ regular: {
+ singularNominative: 'около {{count}} часа',
+ singularGenitive: 'около {{count}} часов',
+ pluralGenitive: 'около {{count}} часов'
+ },
+ future: {
+ singularNominative: 'приблизительно через {{count}} час',
+ singularGenitive: 'приблизительно через {{count}} часа',
+ pluralGenitive: 'приблизительно через {{count}} часов'
+ }
+ }),
+
+ xHours: buildLocalizeTokenFn({
+ regular: {
+ singularNominative: '{{count}} час',
+ singularGenitive: '{{count}} часа',
+ pluralGenitive: '{{count}} часов'
+ }
+ }),
+
+ xDays: buildLocalizeTokenFn({
+ regular: {
+ singularNominative: '{{count}} день',
+ singularGenitive: '{{count}} дня',
+ pluralGenitive: '{{count}} дней'
+ }
+ }),
+
+ aboutXWeeks: buildLocalizeTokenFn({
+ regular: {
+ singularNominative: 'около {{count}} недели',
+ singularGenitive: 'около {{count}} недель',
+ pluralGenitive: 'около {{count}} недель'
+ },
+ future: {
+ singularNominative: 'приблизительно через {{count}} неделю',
+ singularGenitive: 'приблизительно через {{count}} недели',
+ pluralGenitive: 'приблизительно через {{count}} недель'
+ }
+ }),
+
+ xWeeks: buildLocalizeTokenFn({
+ regular: {
+ singularNominative: '{{count}} неделя',
+ singularGenitive: '{{count}} недели',
+ pluralGenitive: '{{count}} недель'
+ }
+ }),
+
+ aboutXMonths: buildLocalizeTokenFn({
+ regular: {
+ singularNominative: 'около {{count}} месяца',
+ singularGenitive: 'около {{count}} месяцев',
+ pluralGenitive: 'около {{count}} месяцев'
+ },
+ future: {
+ singularNominative: 'приблизительно через {{count}} месяц',
+ singularGenitive: 'приблизительно через {{count}} месяца',
+ pluralGenitive: 'приблизительно через {{count}} месяцев'
+ }
+ }),
+
+ xMonths: buildLocalizeTokenFn({
+ regular: {
+ singularNominative: '{{count}} месяц',
+ singularGenitive: '{{count}} месяца',
+ pluralGenitive: '{{count}} месяцев'
+ }
+ }),
+
+ aboutXYears: buildLocalizeTokenFn({
+ regular: {
+ singularNominative: 'около {{count}} года',
+ singularGenitive: 'около {{count}} лет',
+ pluralGenitive: 'около {{count}} лет'
+ },
+ future: {
+ singularNominative: 'приблизительно через {{count}} год',
+ singularGenitive: 'приблизительно через {{count}} года',
+ pluralGenitive: 'приблизительно через {{count}} лет'
+ }
+ }),
+
+ xYears: buildLocalizeTokenFn({
+ regular: {
+ singularNominative: '{{count}} год',
+ singularGenitive: '{{count}} года',
+ pluralGenitive: '{{count}} лет'
+ }
+ }),
+
+ overXYears: buildLocalizeTokenFn({
+ regular: {
+ singularNominative: 'больше {{count}} года',
+ singularGenitive: 'больше {{count}} лет',
+ pluralGenitive: 'больше {{count}} лет'
+ },
+ future: {
+ singularNominative: 'больше, чем через {{count}} год',
+ singularGenitive: 'больше, чем через {{count}} года',
+ pluralGenitive: 'больше, чем через {{count}} лет'
+ }
+ }),
+
+ almostXYears: buildLocalizeTokenFn({
+ regular: {
+ singularNominative: 'почти {{count}} год',
+ singularGenitive: 'почти {{count}} года',
+ pluralGenitive: 'почти {{count}} лет'
+ },
+ future: {
+ singularNominative: 'почти через {{count}} год',
+ singularGenitive: 'почти через {{count}} года',
+ pluralGenitive: 'почти через {{count}} лет'
+ }
+ })
+}
+
+export default function formatDistance(token, count, options) {
+ options = options || {}
+ return formatDistanceLocale[token](count, options)
+}
diff --git a/date-fns/src/locale/ru/_lib/formatLong/index.js b/date-fns/src/locale/ru/_lib/formatLong/index.js
new file mode 100644
index 0000000..e3ac8dd
--- /dev/null
+++ b/date-fns/src/locale/ru/_lib/formatLong/index.js
@@ -0,0 +1,38 @@
+import buildFormatLongFn from '../../../_lib/buildFormatLongFn/index'
+
+var dateFormats = {
+ full: "EEEE, d MMMM y 'г.'",
+ long: "d MMMM y 'г.'",
+ medium: "d MMM y 'г.'",
+ short: 'dd.MM.y'
+}
+
+var timeFormats = {
+ full: 'H:mm:ss zzzz',
+ long: 'H:mm:ss z',
+ medium: 'H:mm:ss',
+ short: 'H:mm'
+}
+
+var dateTimeFormats = {
+ any: '{{date}}, {{time}}'
+}
+
+var formatLong = {
+ date: buildFormatLongFn({
+ formats: dateFormats,
+ defaultWidth: 'full'
+ }),
+
+ time: buildFormatLongFn({
+ formats: timeFormats,
+ defaultWidth: 'full'
+ }),
+
+ dateTime: buildFormatLongFn({
+ formats: dateTimeFormats,
+ defaultWidth: 'any'
+ })
+}
+
+export default formatLong
diff --git a/date-fns/src/locale/ru/_lib/formatRelative/index.js b/date-fns/src/locale/ru/_lib/formatRelative/index.js
new file mode 100644
index 0000000..ad4dbcf
--- /dev/null
+++ b/date-fns/src/locale/ru/_lib/formatRelative/index.js
@@ -0,0 +1,88 @@
+import isSameUTCWeek from '../../../../_lib/isSameUTCWeek/index'
+
+var accusativeWeekdays = [
+ 'воскресенье',
+ 'понедельник',
+ 'вторник',
+ 'среду',
+ 'четверг',
+ 'пятницу',
+ 'субботу'
+]
+
+function lastWeek(day) {
+ var weekday = accusativeWeekdays[day]
+
+ switch (day) {
+ case 0:
+ return "'в прошлое " + weekday + " в' p"
+ case 1:
+ case 2:
+ case 4:
+ return "'в прошлый " + weekday + " в' p"
+ case 3:
+ case 5:
+ case 6:
+ return "'в прошлую " + weekday + " в' p"
+ }
+}
+
+function thisWeek(day) {
+ var weekday = accusativeWeekdays[day]
+
+ if (day === 2 /* Tue */) {
+ return "'во " + weekday + " в' p"
+ } else {
+ return "'в " + weekday + " в' p"
+ }
+}
+
+function nextWeek(day) {
+ var weekday = accusativeWeekdays[day]
+
+ switch (day) {
+ case 0:
+ return "'в следующее " + weekday + " в' p"
+ case 1:
+ case 2:
+ case 4:
+ return "'в следующий " + weekday + " в' p"
+ case 3:
+ case 5:
+ case 6:
+ return "'в следующую " + weekday + " в' p"
+ }
+}
+
+var formatRelativeLocale = {
+ lastWeek: function(date, baseDate, options) {
+ var day = date.getUTCDay()
+ if (isSameUTCWeek(date, baseDate, options)) {
+ return thisWeek(day)
+ } else {
+ return lastWeek(day)
+ }
+ },
+ yesterday: "'вчера в' p",
+ today: "'сегодня в' p",
+ tomorrow: "'завтра в' p",
+ nextWeek: function(date, baseDate, options) {
+ var day = date.getUTCDay()
+ if (isSameUTCWeek(date, baseDate, options)) {
+ return thisWeek(day)
+ } else {
+ return nextWeek(day)
+ }
+ },
+ other: 'P'
+}
+
+export default function formatRelative(token, date, baseDate, options) {
+ var format = formatRelativeLocale[token]
+
+ if (typeof format === 'function') {
+ return format(date, baseDate, options)
+ }
+
+ return format
+}
diff --git a/date-fns/src/locale/ru/_lib/localize/index.js b/date-fns/src/locale/ru/_lib/localize/index.js
new file mode 100644
index 0000000..86ef3b0
--- /dev/null
+++ b/date-fns/src/locale/ru/_lib/localize/index.js
@@ -0,0 +1,210 @@
+import buildLocalizeFn from '../../../_lib/buildLocalizeFn/index'
+
+var eraValues = {
+ narrow: ['до н.э.', 'н.э.'],
+ abbreviated: ['до н. э.', 'н. э.'],
+ wide: ['до нашей эры', 'нашей эры']
+}
+
+var quarterValues = {
+ narrow: ['1', '2', '3', '4'],
+ abbreviated: ['1-й кв.', '2-й кв.', '3-й кв.', '4-й кв.'],
+ wide: ['1-й квартал', '2-й квартал', '3-й квартал', '4-й квартал']
+}
+
+var monthValues = {
+ narrow: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', 'О', 'Н', 'Д'],
+ abbreviated: [
+ 'янв.',
+ 'фев.',
+ 'март',
+ 'апр.',
+ 'май',
+ 'июнь',
+ 'июль',
+ 'авг.',
+ 'сент.',
+ 'окт.',
+ 'нояб.',
+ 'дек.'
+ ],
+ wide: [
+ 'январь',
+ 'февраль',
+ 'март',
+ 'апрель',
+ 'май',
+ 'июнь',
+ 'июль',
+ 'август',
+ 'сентябрь',
+ 'октябрь',
+ 'ноябрь',
+ 'декабрь'
+ ]
+}
+var formattingMonthValues = {
+ narrow: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', 'О', 'Н', 'Д'],
+ abbreviated: [
+ 'янв.',
+ 'фев.',
+ 'мар.',
+ 'апр.',
+ 'мая',
+ 'июн.',
+ 'июл.',
+ 'авг.',
+ 'сент.',
+ 'окт.',
+ 'нояб.',
+ 'дек.'
+ ],
+ wide: [
+ 'января',
+ 'февраля',
+ 'марта',
+ 'апреля',
+ 'мая',
+ 'июня',
+ 'июля',
+ 'августа',
+ 'сентября',
+ 'октября',
+ 'ноября',
+ 'декабря'
+ ]
+}
+
+var dayValues = {
+ narrow: ['В', 'П', 'В', 'С', 'Ч', 'П', 'С'],
+ short: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],
+ abbreviated: ['вск', 'пнд', 'втр', 'срд', 'чтв', 'птн', 'суб'],
+ wide: [
+ 'воскресенье',
+ 'понедельник',
+ 'вторник',
+ 'среда',
+ 'четверг',
+ 'пятница',
+ 'суббота'
+ ]
+}
+
+var dayPeriodValues = {
+ narrow: {
+ am: 'ДП',
+ pm: 'ПП',
+ midnight: 'полн.',
+ noon: 'полд.',
+ morning: 'утро',
+ afternoon: 'день',
+ evening: 'веч.',
+ night: 'ночь'
+ },
+ abbreviated: {
+ am: 'ДП',
+ pm: 'ПП',
+ midnight: 'полн.',
+ noon: 'полд.',
+ morning: 'утро',
+ afternoon: 'день',
+ evening: 'веч.',
+ night: 'ночь'
+ },
+ wide: {
+ am: 'ДП',
+ pm: 'ПП',
+ midnight: 'полночь',
+ noon: 'полдень',
+ morning: 'утро',
+ afternoon: 'день',
+ evening: 'вечер',
+ night: 'ночь'
+ }
+}
+var formattingDayPeriodValues = {
+ narrow: {
+ am: 'ДП',
+ pm: 'ПП',
+ midnight: 'полн.',
+ noon: 'полд.',
+ morning: 'утра',
+ afternoon: 'дня',
+ evening: 'веч.',
+ night: 'ночи'
+ },
+ abbreviated: {
+ am: 'ДП',
+ pm: 'ПП',
+ midnight: 'полн.',
+ noon: 'полд.',
+ morning: 'утра',
+ afternoon: 'дня',
+ evening: 'веч.',
+ night: 'ночи'
+ },
+ wide: {
+ am: 'ДП',
+ pm: 'ПП',
+ midnight: 'полночь',
+ noon: 'полдень',
+ morning: 'утра',
+ afternoon: 'дня',
+ evening: 'вечера',
+ night: 'ночи'
+ }
+}
+
+function ordinalNumber(dirtyNumber, dirtyOptions) {
+ var options = dirtyOptions || {}
+ var unit = String(options.unit)
+ var suffix
+
+ if (unit === 'date') {
+ suffix = '-е'
+ } else if (unit === 'week' || unit === 'minute' || unit === 'second') {
+ suffix = '-я'
+ } else {
+ suffix = '-й'
+ }
+
+ return dirtyNumber + suffix
+}
+
+var localize = {
+ ordinalNumber: ordinalNumber,
+
+ era: buildLocalizeFn({
+ values: eraValues,
+ defaultWidth: 'wide'
+ }),
+
+ quarter: buildLocalizeFn({
+ values: quarterValues,
+ defaultWidth: 'wide',
+ argumentCallback: function(quarter) {
+ return Number(quarter) - 1
+ }
+ }),
+
+ month: buildLocalizeFn({
+ values: monthValues,
+ defaultWidth: 'wide',
+ formattingValues: formattingMonthValues,
+ defaultFormattingWidth: 'wide'
+ }),
+
+ day: buildLocalizeFn({
+ values: dayValues,
+ defaultWidth: 'wide'
+ }),
+
+ dayPeriod: buildLocalizeFn({
+ values: dayPeriodValues,
+ defaultWidth: 'any',
+ formattingValues: formattingDayPeriodValues,
+ defaultFormattingWidth: 'wide'
+ })
+}
+
+export default localize
diff --git a/date-fns/src/locale/ru/_lib/match/index.js b/date-fns/src/locale/ru/_lib/match/index.js
new file mode 100644
index 0000000..3b7425a
--- /dev/null
+++ b/date-fns/src/locale/ru/_lib/match/index.js
@@ -0,0 +1,138 @@
+import buildMatchPatternFn from '../../../_lib/buildMatchPatternFn/index'
+import buildMatchFn from '../../../_lib/buildMatchFn/index'
+
+var matchOrdinalNumberPattern = /^(\d+)(-?(е|я|й|ое|ье|ая|ья|ый|ой|ий|ый))?/i
+var parseOrdinalNumberPattern = /\d+/i
+
+var matchEraPatterns = {
+ narrow: /^((до )?н\.?\s?э\.?)/i,
+ abbreviated: /^((до )?н\.?\s?э\.?)/i,
+ wide: /^(до нашей эры|нашей эры|наша эра)/i
+}
+var parseEraPatterns = {
+ any: [/^д/i, /^н/i]
+}
+
+var matchQuarterPatterns = {
+ narrow: /^[1234]/i,
+ abbreviated: /^[1234](-?[ыои]?й?)? кв.?/i,
+ wide: /^[1234](-?[ыои]?й?)? квартал/i
+}
+var parseQuarterPatterns = {
+ any: [/1/i, /2/i, /3/i, /4/i]
+}
+
+var matchMonthPatterns = {
+ narrow: /^[яфмаисонд]/i,
+ abbreviated: /^(янв|фев|март?|апр|ма[йя]|июн[ья]?|июл[ья]?|авг|сент?|окт|нояб?|дек)\.?/i,
+ wide: /^(январ[ья]|феврал[ья]|марта?|апрел[ья]|ма[йя]|июн[ья]|июл[ья]|августа?|сентябр[ья]|октябр[ья]|октябр[ья]|ноябр[ья]|декабр[ья])/i
+}
+var parseMonthPatterns = {
+ narrow: [
+ /^я/i,
+ /^ф/i,
+ /^м/i,
+ /^а/i,
+ /^м/i,
+ /^и/i,
+ /^и/i,
+ /^а/i,
+ /^с/i,
+ /^о/i,
+ /^н/i,
+ /^я/i
+ ],
+ any: [
+ /^я/i,
+ /^ф/i,
+ /^мар/i,
+ /^ап/i,
+ /^ма[йя]/i,
+ /^июн/i,
+ /^июл/i,
+ /^ав/i,
+ /^с/i,
+ /^о/i,
+ /^н/i,
+ /^д/i
+ ]
+}
+
+var matchDayPatterns = {
+ narrow: /^[впсч]/i,
+ short: /^(вс|во|пн|по|вт|ср|чт|че|пт|пя|сб|су)\.?/i,
+ abbreviated: /^(вск|вос|пнд|пон|втр|вто|срд|сре|чтв|чет|птн|пят|суб).?/i,
+ wide: /^(воскресень[ея]|понедельника?|вторника?|сред[аы]|четверга?|пятниц[аы]|суббот[аы])/i
+}
+var parseDayPatterns = {
+ narrow: [/^в/i, /^п/i, /^в/i, /^с/i, /^ч/i, /^п/i, /^с/i],
+ any: [/^в[ос]/i, /^п[он]/i, /^в/i, /^ср/i, /^ч/i, /^п[ят]/i, /^с[уб]/i]
+}
+
+var matchDayPeriodPatterns = {
+ narrow: /^([дп]п|полн\.?|полд\.?|утр[оа]|день|дня|веч\.?|ноч[ьи])/i,
+ abbreviated: /^([дп]п|полн\.?|полд\.?|утр[оа]|день|дня|веч\.?|ноч[ьи])/i,
+ wide: /^([дп]п|полночь|полдень|утр[оа]|день|дня|вечера?|ноч[ьи])/i
+}
+var parseDayPeriodPatterns = {
+ any: {
+ am: /^дп/i,
+ pm: /^пп/i,
+ midnight: /^полн/i,
+ noon: /^полд/i,
+ morning: /^у/i,
+ afternoon: /^д[ен]/i,
+ evening: /^в/i,
+ night: /^н/i
+ }
+}
+
+var match = {
+ ordinalNumber: buildMatchPatternFn({
+ matchPattern: matchOrdinalNumberPattern,
+ parsePattern: parseOrdinalNumberPattern,
+ valueCallback: function(value) {
+ return parseInt(value, 10)
+ }
+ }),
+
+ era: buildMatchFn({
+ matchPatterns: matchEraPatterns,
+ defaultMatchWidth: 'wide',
+ parsePatterns: parseEraPatterns,
+ defaultParseWidth: 'any'
+ }),
+
+ quarter: buildMatchFn({
+ matchPatterns: matchQuarterPatterns,
+ defaultMatchWidth: 'wide',
+ parsePatterns: parseQuarterPatterns,
+ defaultParseWidth: 'any',
+ valueCallback: function(index) {
+ return index + 1
+ }
+ }),
+
+ month: buildMatchFn({
+ matchPatterns: matchMonthPatterns,
+ defaultMatchWidth: 'wide',
+ parsePatterns: parseMonthPatterns,
+ defaultParseWidth: 'any'
+ }),
+
+ day: buildMatchFn({
+ matchPatterns: matchDayPatterns,
+ defaultMatchWidth: 'wide',
+ parsePatterns: parseDayPatterns,
+ defaultParseWidth: 'any'
+ }),
+
+ dayPeriod: buildMatchFn({
+ matchPatterns: matchDayPeriodPatterns,
+ defaultMatchWidth: 'wide',
+ parsePatterns: parseDayPeriodPatterns,
+ defaultParseWidth: 'any'
+ })
+}
+
+export default match
diff --git a/date-fns/src/locale/ru/index.d.ts b/date-fns/src/locale/ru/index.d.ts
new file mode 100644
index 0000000..1a7f74f
--- /dev/null
+++ b/date-fns/src/locale/ru/index.d.ts
@@ -0,0 +1,4 @@
+// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
+
+import { ru } from 'date-fns/locale'
+export default ru
diff --git a/date-fns/src/locale/ru/index.js b/date-fns/src/locale/ru/index.js
new file mode 100644
index 0000000..7271c7b
--- /dev/null
+++ b/date-fns/src/locale/ru/index.js
@@ -0,0 +1,29 @@
+import formatDistance from './_lib/formatDistance/index'
+import formatLong from './_lib/formatLong/index'
+import formatRelative from './_lib/formatRelative/index'
+import localize from './_lib/localize/index'
+import match from './_lib/match/index'
+
+/**
+ * @type {Locale}
+ * @category Locales
+ * @summary Russian locale.
+ * @language Russian
+ * @iso-639-2 rus
+ * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}
+ * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}
+ */
+var locale = {
+ code: 'ru',
+ formatDistance: formatDistance,
+ formatLong: formatLong,
+ formatRelative: formatRelative,
+ localize: localize,
+ match: match,
+ options: {
+ weekStartsOn: 1 /* Monday */,
+ firstWeekContainsDate: 1
+ }
+}
+
+export default locale
diff --git a/date-fns/src/locale/ru/index.js.flow b/date-fns/src/locale/ru/index.js.flow
new file mode 100644
index 0000000..b9dfe66
--- /dev/null
+++ b/date-fns/src/locale/ru/index.js.flow
@@ -0,0 +1,35 @@
+// @flow
+// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
+
+export type Locale = {
+ code?: string,
+ formatDistance?: (...args: Array<any>) => any,
+ formatRelative?: (...args: Array<any>) => any,
+ localize?: {
+ ordinalNumber: (...args: Array<any>) => any,
+ era: (...args: Array<any>) => any,
+ quarter: (...args: Array<any>) => any,
+ month: (...args: Array<any>) => any,
+ day: (...args: Array<any>) => any,
+ dayPeriod: (...args: Array<any>) => any,
+ },
+ formatLong?: {
+ date: (...args: Array<any>) => any,
+ time: (...args: Array<any>) => any,
+ dateTime: (...args: Array<any>) => any,
+ },
+ match?: {
+ ordinalNumber: (...args: Array<any>) => any,
+ era: (...args: Array<any>) => any,
+ quarter: (...args: Array<any>) => any,
+ month: (...args: Array<any>) => any,
+ day: (...args: Array<any>) => any,
+ dayPeriod: (...args: Array<any>) => any,
+ },
+ options?: {
+ weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
+ firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
+ },
+}
+
+declare module.exports: Locale
diff --git a/date-fns/src/locale/ru/snapshot.md b/date-fns/src/locale/ru/snapshot.md
new file mode 100644
index 0000000..496d151
--- /dev/null
+++ b/date-fns/src/locale/ru/snapshot.md
@@ -0,0 +1,304 @@
+# Russian (ru) locale
+
+## `format` and `parse`
+
+| Title | Token string | Date | `format` result | `parse` result |
+| ------------------------------- | ------------ | ------------------------ | ----------------------------------------------- | ------------------------ |
+| Calendar year | yo | 1987-02-11T12:13:14.015Z | 1987-й | 1987-01-01T00:00:00.000Z |
+| | | 0005-01-01T12:13:14.015Z | 5-й | 0005-01-01T00:00:00.000Z |
+| Local week-numbering year | Yo | 1987-02-11T12:13:14.015Z | 1987-й | 1986-12-29T00:00:00.000Z |
+| | | 0005-01-01T12:13:14.015Z | 5-й | 0004-12-27T00:00:00.000Z |
+| Quarter (formatting) | Qo | 2019-01-01T12:13:14.015Z | 1-й | 2019-01-01T00:00:00.000Z |
+| | | 2019-04-01T12:13:14.015Z | 2-й | 2019-04-01T00:00:00.000Z |
+| | QQQ | 2019-01-01T12:13:14.015Z | 1-й кв. | 2019-01-01T00:00:00.000Z |
+| | | 2019-04-01T12:13:14.015Z | 2-й кв. | 2019-04-01T00:00:00.000Z |
+| | QQQQ | 2019-01-01T12:13:14.015Z | 1-й квартал | 2019-01-01T00:00:00.000Z |
+| | | 2019-04-01T12:13:14.015Z | 2-й квартал | 2019-04-01T00:00:00.000Z |
+| | QQQQQ | 2019-01-01T12:13:14.015Z | 1 | 2019-01-01T00:00:00.000Z |
+| | | 2019-04-01T12:13:14.015Z | 2 | 2019-04-01T00:00:00.000Z |
+| Quarter (stand-alone) | qo | 2019-01-01T12:13:14.015Z | 1-й | 2019-01-01T00:00:00.000Z |
+| | | 2019-04-01T12:13:14.015Z | 2-й | 2019-04-01T00:00:00.000Z |
+| | qqq | 2019-01-01T12:13:14.015Z | 1-й кв. | 2019-01-01T00:00:00.000Z |
+| | | 2019-04-01T12:13:14.015Z | 2-й кв. | 2019-04-01T00:00:00.000Z |
+| | qqqq | 2019-01-01T12:13:14.015Z | 1-й квартал | 2019-01-01T00:00:00.000Z |
+| | | 2019-04-01T12:13:14.015Z | 2-й квартал | 2019-04-01T00:00:00.000Z |
+| Month (formatting) | Mo | 2019-02-11T12:13:14.015Z | 2-й | 2019-02-01T00:00:00.000Z |
+| | | 2019-07-10T12:13:14.015Z | 7-й | 2019-07-01T00:00:00.000Z |
+| | MMM | 2019-02-11T12:13:14.015Z | фев. | 2019-02-01T00:00:00.000Z |
+| | | 2019-07-10T12:13:14.015Z | июл. | 2019-07-01T00:00:00.000Z |
+| | MMMM | 2019-02-11T12:13:14.015Z | февраля | 2019-02-01T00:00:00.000Z |
+| | | 2019-07-10T12:13:14.015Z | июля | 2019-07-01T00:00:00.000Z |
+| | MMMMM | 2019-02-11T12:13:14.015Z | Ф | 2019-02-01T00:00:00.000Z |
+| | | 2019-07-10T12:13:14.015Z | И | 2019-06-01T00:00:00.000Z |
+| Month (stand-alone) | Lo | 2019-02-11T12:13:14.015Z | 2-й | 2019-02-01T00:00:00.000Z |
+| | | 2019-07-10T12:13:14.015Z | 7-й | 2019-07-01T00:00:00.000Z |
+| | LLL | 2019-02-11T12:13:14.015Z | фев. | 2019-02-01T00:00:00.000Z |
+| | | 2019-07-10T12:13:14.015Z | июль | 2019-07-01T00:00:00.000Z |
+| | LLLL | 2019-02-11T12:13:14.015Z | февраль | 2019-02-01T00:00:00.000Z |
+| | | 2019-07-10T12:13:14.015Z | июль | 2019-07-01T00:00:00.000Z |
+| | LLLLL | 2019-02-11T12:13:14.015Z | Ф | 2019-02-01T00:00:00.000Z |
+| | | 2019-07-10T12:13:14.015Z | И | 2019-06-01T00:00:00.000Z |
+| Local week of year | wo | 2019-01-01T12:13:14.015Z | 1-я | 2018-12-31T00:00:00.000Z |
+| | | 2019-12-01T12:13:14.015Z | 48-я | 2019-11-25T00:00:00.000Z |
+| ISO week of year | Io | 2019-01-01T12:13:14.015Z | 1-я | 2018-12-31T00:00:00.000Z |
+| | | 2019-12-01T12:13:14.015Z | 48-я | 2019-11-25T00:00:00.000Z |
+| Day of month | do | 2019-02-11T12:13:14.015Z | 11-е | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-28T12:13:14.015Z | 28-е | 2019-02-28T00:00:00.000Z |
+| Day of year | Do | 2019-02-11T12:13:14.015Z | 42-й | 2019-02-11T00:00:00.000Z |
+| | | 2019-12-31T12:13:14.015Z | 365-й | 2019-12-31T00:00:00.000Z |
+| Day of week (formatting) | E | 2019-02-11T12:13:14.015Z | пнд | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-15T12:13:14.015Z | птн | 2019-02-15T00:00:00.000Z |
+| | EE | 2019-02-11T12:13:14.015Z | пнд | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-15T12:13:14.015Z | птн | 2019-02-15T00:00:00.000Z |
+| | EEE | 2019-02-11T12:13:14.015Z | пнд | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-15T12:13:14.015Z | птн | 2019-02-15T00:00:00.000Z |
+| | EEEE | 2019-02-11T12:13:14.015Z | понедельник | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-15T12:13:14.015Z | пятница | 2019-02-15T00:00:00.000Z |
+| | EEEEE | 2019-02-11T12:13:14.015Z | П | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-15T12:13:14.015Z | П | 2019-02-11T00:00:00.000Z |
+| | EEEEEE | 2019-02-11T12:13:14.015Z | пн | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-15T12:13:14.015Z | пт | 2019-02-15T00:00:00.000Z |
+| ISO day of week (formatting) | io | 2019-02-11T12:13:14.015Z | 1-й | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-15T12:13:14.015Z | 5-й | 2019-02-15T00:00:00.000Z |
+| | iii | 2019-02-11T12:13:14.015Z | пнд | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-15T12:13:14.015Z | птн | 2019-02-15T00:00:00.000Z |
+| | iiii | 2019-02-11T12:13:14.015Z | понедельник | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-15T12:13:14.015Z | пятница | 2019-02-15T00:00:00.000Z |
+| | iiiii | 2019-02-11T12:13:14.015Z | П | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-15T12:13:14.015Z | П | 2019-02-11T00:00:00.000Z |
+| | iiiiii | 2019-02-11T12:13:14.015Z | пн | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-15T12:13:14.015Z | пт | 2019-02-15T00:00:00.000Z |
+| Local day of week (formatting) | eo | 2019-02-11T12:13:14.015Z | 1-й | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-15T12:13:14.015Z | 5-й | 2019-02-15T00:00:00.000Z |
+| | eee | 2019-02-11T12:13:14.015Z | пнд | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-15T12:13:14.015Z | птн | 2019-02-15T00:00:00.000Z |
+| | eeee | 2019-02-11T12:13:14.015Z | понедельник | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-15T12:13:14.015Z | пятница | 2019-02-15T00:00:00.000Z |
+| | eeeee | 2019-02-11T12:13:14.015Z | П | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-15T12:13:14.015Z | П | 2019-02-11T00:00:00.000Z |
+| | eeeeee | 2019-02-11T12:13:14.015Z | пн | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-15T12:13:14.015Z | пт | 2019-02-15T00:00:00.000Z |
+| Local day of week (stand-alone) | co | 2019-02-11T12:13:14.015Z | 1-й | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-15T12:13:14.015Z | 5-й | 2019-02-15T00:00:00.000Z |
+| | ccc | 2019-02-11T12:13:14.015Z | пнд | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-15T12:13:14.015Z | птн | 2019-02-15T00:00:00.000Z |
+| | cccc | 2019-02-11T12:13:14.015Z | понедельник | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-15T12:13:14.015Z | пятница | 2019-02-15T00:00:00.000Z |
+| | ccccc | 2019-02-11T12:13:14.015Z | П | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-15T12:13:14.015Z | П | 2019-02-11T00:00:00.000Z |
+| | cccccc | 2019-02-11T12:13:14.015Z | пн | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-15T12:13:14.015Z | пт | 2019-02-15T00:00:00.000Z |
+| AM, PM | a | 2019-02-11T11:13:14.015Z | ДП | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-11T14:13:14.015Z | ПП | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T19:13:14.015Z | ПП | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T02:13:14.015Z | ДП | 2019-02-11T00:00:00.000Z |
+| | aa | 2019-02-11T11:13:14.015Z | ДП | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-11T14:13:14.015Z | ПП | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T19:13:14.015Z | ПП | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T02:13:14.015Z | ДП | 2019-02-11T00:00:00.000Z |
+| | aaa | 2019-02-11T11:13:14.015Z | дп | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-11T14:13:14.015Z | пп | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T19:13:14.015Z | пп | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T02:13:14.015Z | дп | 2019-02-11T00:00:00.000Z |
+| | aaaa | 2019-02-11T11:13:14.015Z | ДП | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-11T14:13:14.015Z | ПП | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T19:13:14.015Z | ПП | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T02:13:14.015Z | ДП | 2019-02-11T00:00:00.000Z |
+| | aaaaa | 2019-02-11T11:13:14.015Z | ДП | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-11T14:13:14.015Z | ПП | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T19:13:14.015Z | ПП | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T02:13:14.015Z | ДП | 2019-02-11T00:00:00.000Z |
+| AM, PM, noon, midnight | b | 2019-02-11T11:13:14.015Z | ДП | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-11T14:13:14.015Z | ПП | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T19:13:14.015Z | ПП | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T02:13:14.015Z | ДП | 2019-02-11T00:00:00.000Z |
+| | bb | 2019-02-11T11:13:14.015Z | ДП | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-11T14:13:14.015Z | ПП | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T19:13:14.015Z | ПП | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T02:13:14.015Z | ДП | 2019-02-11T00:00:00.000Z |
+| | bbb | 2019-02-11T11:13:14.015Z | дп | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-11T14:13:14.015Z | пп | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T19:13:14.015Z | пп | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T02:13:14.015Z | дп | 2019-02-11T00:00:00.000Z |
+| | bbbb | 2019-02-11T11:13:14.015Z | ДП | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-11T14:13:14.015Z | ПП | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T19:13:14.015Z | ПП | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T02:13:14.015Z | ДП | 2019-02-11T00:00:00.000Z |
+| | bbbbb | 2019-02-11T11:13:14.015Z | ДП | 2019-02-11T00:00:00.000Z |
+| | | 2019-02-11T14:13:14.015Z | ПП | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T19:13:14.015Z | ПП | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T02:13:14.015Z | ДП | 2019-02-11T00:00:00.000Z |
+| Flexible day period | B | 2019-02-11T11:13:14.015Z | утра | 2019-02-11T04:00:00.000Z |
+| | | 2019-02-11T14:13:14.015Z | дня | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T19:13:14.015Z | веч. | 2019-02-11T17:00:00.000Z |
+| | | 2019-02-11T02:13:14.015Z | ночи | 2019-02-11T00:00:00.000Z |
+| | BB | 2019-02-11T11:13:14.015Z | утра | 2019-02-11T04:00:00.000Z |
+| | | 2019-02-11T14:13:14.015Z | дня | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T19:13:14.015Z | веч. | 2019-02-11T17:00:00.000Z |
+| | | 2019-02-11T02:13:14.015Z | ночи | 2019-02-11T00:00:00.000Z |
+| | BBB | 2019-02-11T11:13:14.015Z | утра | 2019-02-11T04:00:00.000Z |
+| | | 2019-02-11T14:13:14.015Z | дня | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T19:13:14.015Z | веч. | 2019-02-11T17:00:00.000Z |
+| | | 2019-02-11T02:13:14.015Z | ночи | 2019-02-11T00:00:00.000Z |
+| | BBBB | 2019-02-11T11:13:14.015Z | утра | 2019-02-11T04:00:00.000Z |
+| | | 2019-02-11T14:13:14.015Z | дня | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T19:13:14.015Z | вечера | 2019-02-11T17:00:00.000Z |
+| | | 2019-02-11T02:13:14.015Z | ночи | 2019-02-11T00:00:00.000Z |
+| | BBBBB | 2019-02-11T11:13:14.015Z | утра | 2019-02-11T04:00:00.000Z |
+| | | 2019-02-11T14:13:14.015Z | дня | 2019-02-11T12:00:00.000Z |
+| | | 2019-02-11T19:13:14.015Z | веч. | 2019-02-11T17:00:00.000Z |
+| | | 2019-02-11T02:13:14.015Z | ночи | 2019-02-11T00:00:00.000Z |
+| Hour [1-12] | ho | 2019-02-11T11:13:14.015Z | 11-й | 2019-02-11T11:00:00.000Z |
+| | | 2019-02-11T23:13:14.015Z | 11-й | 2019-02-11T23:00:00.000Z |
+| Hour [0-23] | Ho | 2019-02-11T11:13:14.015Z | 11-й | 2019-02-11T11:00:00.000Z |
+| | | 2019-02-11T23:13:14.015Z | 23-й | 2019-02-11T23:00:00.000Z |
+| Hour [0-11] | Ko | 2019-02-11T11:13:14.015Z | 11-й | 2019-02-11T11:00:00.000Z |
+| | | 2019-02-11T23:13:14.015Z | 11-й | 2019-02-11T23:00:00.000Z |
+| Hour [1-24] | ko | 2019-02-11T11:13:14.015Z | 11-й | 2019-02-11T11:00:00.000Z |
+| | | 2019-02-11T23:13:14.015Z | 23-й | 2019-02-11T23:00:00.000Z |
+| Minute | mo | 2019-01-01T12:01:14.015Z | 1-я | 2019-01-01T12:01:00.000Z |
+| | | 2019-04-01T12:55:14.015Z | 55-я | 2019-04-01T12:55:00.000Z |
+| Second | so | 2019-01-01T12:13:01.015Z | 1-я | 2019-01-01T12:13:01.000Z |
+| | | 2019-04-01T12:13:55.015Z | 55-я | 2019-04-01T12:13:55.000Z |
+| Long localized date | P | 1987-02-11T12:13:14.015Z | 11.02.1987 | 1987-02-11T00:00:00.000Z |
+| | | 1453-05-29T23:59:59.999Z | 29.05.1453 | 1453-05-29T00:00:00.000Z |
+| | PP | 1987-02-11T12:13:14.015Z | 11 фев. 1987 г. | 1987-02-11T00:00:00.000Z |
+| | | 1453-05-29T23:59:59.999Z | 29 мая 1453 г. | 1453-05-29T00:00:00.000Z |
+| | PPP | 1987-02-11T12:13:14.015Z | 11 февраля 1987 г. | 1987-02-11T00:00:00.000Z |
+| | | 1453-05-29T23:59:59.999Z | 29 мая 1453 г. | 1453-05-29T00:00:00.000Z |
+| | PPPP | 1987-02-11T12:13:14.015Z | среда, 11 февраля 1987 г. | 1987-02-11T00:00:00.000Z |
+| | | 1453-05-29T23:59:59.999Z | воскресенье, 29 мая 1453 г. | 1453-05-29T00:00:00.000Z |
+| Long localized time | p | 1987-02-11T12:13:14.015Z | 12:13 | 1987-02-11T12:13:00.000Z |
+| | | 1453-05-29T23:59:59.999Z | 23:59 | 1453-05-29T23:59:00.000Z |
+| | pp | 1987-02-11T12:13:14.015Z | 12:13:14 | 1987-02-11T12:13:14.000Z |
+| | | 1453-05-29T23:59:59.999Z | 23:59:59 | 1453-05-29T23:59:59.000Z |
+| | ppp | 1987-02-11T12:13:14.015Z | 12:13:14 GMT+0 | Errored |
+| | | 1453-05-29T23:59:59.999Z | 23:59:59 GMT+0 | Errored |
+| | pppp | 1987-02-11T12:13:14.015Z | 12:13:14 GMT+00:00 | Errored |
+| | | 1453-05-29T23:59:59.999Z | 23:59:59 GMT+00:00 | Errored |
+| Combination of date and time | Pp | 1987-02-11T12:13:14.015Z | 11.02.1987, 12:13 | 1987-02-11T12:13:00.000Z |
+| | | 1453-05-29T23:59:59.999Z | 29.05.1453, 23:59 | 1453-05-29T23:59:00.000Z |
+| | PPpp | 1987-02-11T12:13:14.015Z | 11 фев. 1987 г., 12:13:14 | 1987-02-11T12:13:14.000Z |
+| | | 1453-05-29T23:59:59.999Z | 29 мая 1453 г., 23:59:59 | 1453-05-29T23:59:59.000Z |
+| | PPPppp | 1987-02-11T12:13:14.015Z | 11 февраля 1987 г., 12:13:14 GMT+0 | Errored |
+| | | 1453-05-29T23:59:59.999Z | 29 мая 1453 г., 23:59:59 GMT+0 | Errored |
+| | PPPPpppp | 1987-02-11T12:13:14.015Z | среда, 11 февраля 1987 г., 12:13:14 GMT+00:00 | Errored |
+| | | 1453-05-29T23:59:59.999Z | воскресенье, 29 мая 1453 г., 23:59:59 GMT+00:00 | Errored |
+
+## `formatDistance`
+
+If now is January 1st, 2000, 00:00.
+
+| Date | Result | `includeSeconds: true` | `addSuffix: true` |
+| ------------------------ | -------------- | ---------------------- | ---------------------------- |
+| 2006-01-01T00:00:00.000Z | около 6 лет | около 6 лет | приблизительно через 6 лет |
+| 2005-01-01T00:00:00.000Z | около 5 лет | около 5 лет | приблизительно через 5 лет |
+| 2004-01-01T00:00:00.000Z | около 4 лет | около 4 лет | приблизительно через 4 года |
+| 2003-01-01T00:00:00.000Z | около 3 лет | около 3 лет | приблизительно через 3 года |
+| 2002-01-01T00:00:00.000Z | около 2 лет | около 2 лет | приблизительно через 2 года |
+| 2001-06-01T00:00:00.000Z | больше 1 года | больше 1 года | больше, чем через 1 год |
+| 2001-02-01T00:00:00.000Z | около 1 года | около 1 года | приблизительно через 1 год |
+| 2001-01-01T00:00:00.000Z | около 1 года | около 1 года | приблизительно через 1 год |
+| 2000-06-01T00:00:00.000Z | 5 месяцев | 5 месяцев | через 5 месяцев |
+| 2000-03-01T00:00:00.000Z | 2 месяца | 2 месяца | через 2 месяца |
+| 2000-02-01T00:00:00.000Z | около 1 месяца | около 1 месяца | приблизительно через 1 месяц |
+| 2000-01-15T00:00:00.000Z | 14 дней | 14 дней | через 14 дней |
+| 2000-01-02T00:00:00.000Z | 1 день | 1 день | через 1 день |
+| 2000-01-01T06:00:00.000Z | около 6 часов | около 6 часов | приблизительно через 6 часов |
+| 2000-01-01T01:00:00.000Z | около 1 часа | около 1 часа | приблизительно через 1 час |
+| 2000-01-01T00:45:00.000Z | около 1 часа | около 1 часа | приблизительно через 1 час |
+| 2000-01-01T00:30:00.000Z | 30 минут | 30 минут | через 30 минут |
+| 2000-01-01T00:15:00.000Z | 15 минут | 15 минут | через 15 минут |
+| 2000-01-01T00:01:00.000Z | 1 минута | 1 минута | через 1 минуту |
+| 2000-01-01T00:00:25.000Z | меньше минуты | полминуты | меньше, чем через минуту |
+| 2000-01-01T00:00:15.000Z | меньше минуты | меньше 20 секунд | меньше, чем через минуту |
+| 2000-01-01T00:00:05.000Z | меньше минуты | меньше 10 секунд | меньше, чем через минуту |
+| 2000-01-01T00:00:00.000Z | меньше минуты | меньше 5 секунд | меньше минуты назад |
+| 1999-12-31T23:59:55.000Z | меньше минуты | меньше 10 секунд | меньше минуты назад |
+| 1999-12-31T23:59:45.000Z | меньше минуты | меньше 20 секунд | меньше минуты назад |
+| 1999-12-31T23:59:35.000Z | меньше минуты | полминуты | меньше минуты назад |
+| 1999-12-31T23:59:00.000Z | 1 минута | 1 минута | 1 минуту назад |
+| 1999-12-31T23:45:00.000Z | 15 минут | 15 минут | 15 минут назад |
+| 1999-12-31T23:30:00.000Z | 30 минут | 30 минут | 30 минут назад |
+| 1999-12-31T23:15:00.000Z | около 1 часа | около 1 часа | около 1 часа назад |
+| 1999-12-31T23:00:00.000Z | около 1 часа | около 1 часа | около 1 часа назад |
+| 1999-12-31T18:00:00.000Z | около 6 часов | около 6 часов | около 6 часов назад |
+| 1999-12-30T00:00:00.000Z | 2 дня | 2 дня | 2 дня назад |
+| 1999-12-15T00:00:00.000Z | 17 дней | 17 дней | 17 дней назад |
+| 1999-12-01T00:00:00.000Z | около 1 месяца | около 1 месяца | около 1 месяца назад |
+| 1999-11-01T00:00:00.000Z | 2 месяца | 2 месяца | 2 месяца назад |
+| 1999-06-01T00:00:00.000Z | 7 месяцев | 7 месяцев | 7 месяцев назад |
+| 1999-01-01T00:00:00.000Z | около 1 года | около 1 года | около 1 года назад |
+| 1998-12-01T00:00:00.000Z | около 1 года | около 1 года | около 1 года назад |
+| 1998-06-01T00:00:00.000Z | больше 1 года | больше 1 года | больше 1 года назад |
+| 1998-01-01T00:00:00.000Z | около 2 лет | около 2 лет | около 2 лет назад |
+| 1997-01-01T00:00:00.000Z | около 3 лет | около 3 лет | около 3 лет назад |
+| 1996-01-01T00:00:00.000Z | около 4 лет | около 4 лет | около 4 лет назад |
+| 1995-01-01T00:00:00.000Z | около 5 лет | около 5 лет | около 5 лет назад |
+| 1994-01-01T00:00:00.000Z | около 6 лет | около 6 лет | около 6 лет назад |
+
+## `formatDistanceStrict`
+
+If now is January 1st, 2000, 00:00.
+
+| Date | Result | `addSuffix: true` | With forced unit (i.e. `hour`) |
+| ------------------------ | --------- | ----------------- | ------------------------------ |
+| 2006-01-01T00:00:00.000Z | 6 лет | через 6 лет | 52608 часов |
+| 2005-01-01T00:00:00.000Z | 5 лет | через 5 лет | 43848 часов |
+| 2004-01-01T00:00:00.000Z | 4 года | через 4 года | 35064 часа |
+| 2003-01-01T00:00:00.000Z | 3 года | через 3 года | 26304 часа |
+| 2002-01-01T00:00:00.000Z | 2 года | через 2 года | 17544 часа |
+| 2001-06-01T00:00:00.000Z | 1 год | через 1 год | 12408 часов |
+| 2001-02-01T00:00:00.000Z | 1 год | через 1 год | 9528 часов |
+| 2001-01-01T00:00:00.000Z | 1 год | через 1 год | 8784 часа |
+| 2000-06-01T00:00:00.000Z | 5 месяцев | через 5 месяцев | 3648 часов |
+| 2000-03-01T00:00:00.000Z | 2 месяца | через 2 месяца | 1440 часов |
+| 2000-02-01T00:00:00.000Z | 1 месяц | через 1 месяц | 744 часа |
+| 2000-01-15T00:00:00.000Z | 14 дней | через 14 дней | 336 часов |
+| 2000-01-02T00:00:00.000Z | 1 день | через 1 день | 24 часа |
+| 2000-01-01T06:00:00.000Z | 6 часов | через 6 часов | 6 часов |
+| 2000-01-01T01:00:00.000Z | 1 час | через 1 час | 1 час |
+| 2000-01-01T00:45:00.000Z | 45 минут | через 45 минут | 1 час |
+| 2000-01-01T00:30:00.000Z | 30 минут | через 30 минут | 1 час |
+| 2000-01-01T00:15:00.000Z | 15 минут | через 15 минут | 0 часов |
+| 2000-01-01T00:01:00.000Z | 1 минута | через 1 минуту | 0 часов |
+| 2000-01-01T00:00:25.000Z | 25 секунд | через 25 секунд | 0 часов |
+| 2000-01-01T00:00:15.000Z | 15 секунд | через 15 секунд | 0 часов |
+| 2000-01-01T00:00:05.000Z | 5 секунд | через 5 секунд | 0 часов |
+| 2000-01-01T00:00:00.000Z | 0 секунд | 0 секунд назад | 0 часов |
+| 1999-12-31T23:59:55.000Z | 5 секунд | 5 секунд назад | 0 часов |
+| 1999-12-31T23:59:45.000Z | 15 секунд | 15 секунд назад | 0 часов |
+| 1999-12-31T23:59:35.000Z | 25 секунд | 25 секунд назад | 0 часов |
+| 1999-12-31T23:59:00.000Z | 1 минута | 1 минуту назад | 0 часов |
+| 1999-12-31T23:45:00.000Z | 15 минут | 15 минут назад | 0 часов |
+| 1999-12-31T23:30:00.000Z | 30 минут | 30 минут назад | 1 час |
+| 1999-12-31T23:15:00.000Z | 45 минут | 45 минут назад | 1 час |
+| 1999-12-31T23:00:00.000Z | 1 час | 1 час назад | 1 час |
+| 1999-12-31T18:00:00.000Z | 6 часов | 6 часов назад | 6 часов |
+| 1999-12-30T00:00:00.000Z | 2 дня | 2 дня назад | 48 часов |
+| 1999-12-15T00:00:00.000Z | 17 дней | 17 дней назад | 408 часов |
+| 1999-12-01T00:00:00.000Z | 1 месяц | 1 месяц назад | 744 часа |
+| 1999-11-01T00:00:00.000Z | 2 месяца | 2 месяца назад | 1464 часа |
+| 1999-06-01T00:00:00.000Z | 7 месяцев | 7 месяцев назад | 5136 часов |
+| 1999-01-01T00:00:00.000Z | 1 год | 1 год назад | 8760 часов |
+| 1998-12-01T00:00:00.000Z | 1 год | 1 год назад | 9504 часа |
+| 1998-06-01T00:00:00.000Z | 2 года | 2 года назад | 13896 часов |
+| 1998-01-01T00:00:00.000Z | 2 года | 2 года назад | 17520 часов |
+| 1997-01-01T00:00:00.000Z | 3 года | 3 года назад | 26280 часов |
+| 1996-01-01T00:00:00.000Z | 4 года | 4 года назад | 35064 часа |
+| 1995-01-01T00:00:00.000Z | 5 лет | 5 лет назад | 43824 часа |
+| 1994-01-01T00:00:00.000Z | 6 лет | 6 лет назад | 52584 часа |
+
+## `formatRelative`
+
+If now is January 1st, 2000, 00:00.
+
+| Date | Result |
+| ------------------------ | ------------------------ |
+| 2000-01-10T00:00:00.000Z | 10.01.2000 |
+| 2000-01-05T00:00:00.000Z | в следующую среду в 0:00 |
+| 2000-01-02T00:00:00.000Z | завтра в 0:00 |
+| 2000-01-01T00:00:00.000Z | сегодня в 0:00 |
+| 1999-12-31T00:00:00.000Z | вчера в 0:00 |
+| 1999-12-27T00:00:00.000Z | в понедельник в 0:00 |
+| 1999-12-21T00:00:00.000Z | 21.12.1999 |