summaryrefslogtreecommitdiff
path: root/date-fns/src/locale/ru/_lib/formatRelative/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'date-fns/src/locale/ru/_lib/formatRelative/index.js')
-rw-r--r--date-fns/src/locale/ru/_lib/formatRelative/index.js88
1 files changed, 88 insertions, 0 deletions
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
+}