summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/Date/Language/Russian.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl/lib/Date/Language/Russian.pm')
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Russian.pm49
1 files changed, 49 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Russian.pm b/Master/tlpkg/tlperl/lib/Date/Language/Russian.pm
new file mode 100644
index 00000000000..ca9f4142327
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Date/Language/Russian.pm
@@ -0,0 +1,49 @@
+##
+## Russian tables
+##
+## Contributed by Danil Pismenny <dapi@mail.ru>
+
+package Date::Language::Russian;
+
+use vars qw(@ISA @DoW @DoWs @MoY @MoYs @MoY2 @AMPM %MoY %DoW $VERSION);
+@ISA = qw(Date::Language Date::Format::Generic);
+$VERSION = "1.01";
+
+@MoY = qw(Января Февраля Марта Апреля Мая Июня Июля Августа Сентября Октября Ноября Декабря);
+@MoY2 = qw(Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь);
+@MoYs = qw(Янв Фев Мрт Апр Май Июн Июл Авг Сен Окт Ноя Дек);
+
+@DoW = qw(Понедельник Вторник Среда Четверг Пятница Суббота Воскресенье);
+@DoWs = qw(Пн Вт Ср Чт Пт Сб Вс);
+@DoWs2 = qw(Пнд Втр Срд Чтв Птн Сбт Вск);
+
+@AMPM = qw(дп пп);
+
+@MoY{@MoY} = (0 .. scalar(@MoY));
+@MoY{@MoYs} = (0 .. scalar(@MoYs));
+@DoW{@DoW} = (0 .. scalar(@DoW));
+@DoW{@DoWs} = (0 .. scalar(@DoWs));
+
+# Formatting routines
+
+sub format_a { $DoWs[$_[0]->[6]] }
+sub format_A { $DoW[$_[0]->[6]] }
+sub format_b { $MoYs[$_[0]->[4]] }
+sub format_B { $MoY[$_[0]->[4]] }
+sub format_h { $MoYs[$_[0]->[4]] }
+sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
+
+sub format_d { $_[0]->[3] }
+sub format_m { $_[0]->[4] + 1 }
+sub format_o { $_[0]->[3] . '.' }
+
+sub format_Q { $MoY2[$_[0]->[4]] }
+
+sub str2time {
+ my ($self,$value) = @_;
+ map {$value=~s/(\s|^)$DoWs2[$_](\s)/$DoWs[$_]$2/ig} (0..6);
+ $value=~s/(\s+|^)Мар(\s+)/$1Мрт$2/;
+ return $self->SUPER::str2time($value);
+}
+
+1;