File Coverage

blib/lib/Date/Language/Russian.pm
Criterion Covered Total %
statement 16 27 59.2
branch 0 2 0.0
condition n/a
subroutine 8 15 53.3
pod 1 11 9.0
total 25 55 45.4


line stmt bran cond sub pod time code
1             ##
2             ## Russian tables (KOI8-R byte encoding)
3             ##
4             ## Contributed by Danil Pismenny
5              
6             package Date::Language::Russian;
7              
8 1     1   5 use strict;
  1         2  
  1         29  
9 1     1   4 use warnings;
  1         1  
  1         34  
10              
11 1     1   4 use Date::Language ();
  1         1  
  1         28  
12              
13 1     1   3 use base 'Date::Language';
  1         1  
  1         732  
14              
15             our $VERSION = '2.34'; # VERSION: generated
16             # ABSTRACT: Russian localization for Date::Format (KOI8-R)
17              
18             our (@DoW, @DoWs, @MoY, @MoYs, @MoY2, @DoWs2, @AMPM, @Dsuf, %MoY, %DoW);
19              
20             @MoY = (
21             "\xf1\xce\xd7\xc1\xd2\xd1", # Января
22             "\xe6\xc5\xd7\xd2\xc1\xcc\xd1", # Февраля
23             "\xed\xc1\xd2\xd4\xc1", # Марта
24             "\xe1\xd0\xd2\xc5\xcc\xd1", # Апреля
25             "\xed\xc1\xd1", # Мая
26             "\xe9\xc0\xce\xd1", # Июня
27             "\xe9\xc0\xcc\xd1", # Июля
28             "\xe1\xd7\xc7\xd5\xd3\xd4\xc1", # Августа
29             "\xf3\xc5\xce\xd4\xd1\xc2\xd2\xd1", # Сентября
30             "\xef\xcb\xd4\xd1\xc2\xd2\xd1", # Октября
31             "\xee\xcf\xd1\xc2\xd2\xd1", # Ноября
32             "\xe4\xc5\xcb\xc1\xc2\xd2\xd1", # Декабря
33             );
34              
35             @MoY2 = (
36             "\xf1\xce\xd7\xc1\xd2\xd8", # Январь
37             "\xe6\xc5\xd7\xd2\xc1\xcc\xd8", # Февраль
38             "\xed\xc1\xd2\xd4", # Март
39             "\xe1\xd0\xd2\xc5\xcc\xd8", # Апрель
40             "\xed\xc1\xca", # Май
41             "\xe9\xc0\xce\xd8", # Июнь
42             "\xe9\xc0\xcc\xd8", # Июль
43             "\xe1\xd7\xc7\xd5\xd3\xd4", # Август
44             "\xf3\xc5\xce\xd4\xd1\xc2\xd2\xd8", # Сентябрь
45             "\xef\xcb\xd4\xd1\xc2\xd2\xd8", # Октябрь
46             "\xee\xcf\xd1\xc2\xd2\xd8", # Ноябрь
47             "\xe4\xc5\xcb\xc1\xc2\xd2\xd8", # Декабрь
48             );
49              
50             @MoYs = (
51             "\xf1\xce\xd7", # Янв
52             "\xe6\xc5\xd7", # Фев
53             "\xed\xd2\xd4", # Мрт
54             "\xe1\xd0\xd2", # Апр
55             "\xed\xc1\xca", # Май
56             "\xe9\xc0\xce", # Июн
57             "\xe9\xc0\xcc", # Июл
58             "\xe1\xd7\xc7", # Авг
59             "\xf3\xc5\xce", # Сен
60             "\xef\xcb\xd4", # Окт
61             "\xee\xcf\xd1", # Ноя
62             "\xe4\xc5\xcb", # Дек
63             );
64              
65             @DoW = (
66             "\xf0\xcf\xce\xc5\xc4\xc5\xcc\xd8\xce\xc9\xcb", # Понедельник
67             "\xf7\xd4\xcf\xd2\xce\xc9\xcb", # Вторник
68             "\xf3\xd2\xc5\xc4\xc1", # Среда
69             "\xfe\xc5\xd4\xd7\xc5\xd2\xc7", # Четверг
70             "\xf0\xd1\xd4\xce\xc9\xc3\xc1", # Пятница
71             "\xf3\xd5\xc2\xc2\xcf\xd4\xc1", # Суббота
72             "\xf7\xcf\xd3\xcb\xd2\xc5\xd3\xc5\xce\xd8\xc5", # Воскресенье
73             );
74              
75             @DoWs = (
76             "\xf0\xce", # Пн
77             "\xf7\xd4", # Вт
78             "\xf3\xd2", # Ср
79             "\xfe\xd4", # Чт
80             "\xf0\xd4", # Пт
81             "\xf3\xc2", # Сб
82             "\xf7\xd3", # Вс
83             );
84              
85             @DoWs2 = (
86             "\xf0\xce\xc4", # Пнд
87             "\xf7\xd4\xd2", # Втр
88             "\xf3\xd2\xc4", # Срд
89             "\xfe\xd4\xd7", # Чтв
90             "\xf0\xd4\xce", # Птн
91             "\xf3\xc2\xd4", # Сбт
92             "\xf7\xd3\xcb", # Вск
93             );
94              
95             @AMPM = (
96             "\xc4\xd0", # дп
97             "\xd0\xd0", # пп
98             );
99              
100             Date::Language::_build_lookups();
101              
102             # Formatting routines
103              
104 1     1 0 4 sub format_a { $DoWs[$_[0]->[6]] }
105 1     1 0 4 sub format_A { $DoW[$_[0]->[6]] }
106 1     1 0 4 sub format_b { $MoYs[$_[0]->[4]] }
107 1     1 0 4 sub format_B { $MoY[$_[0]->[4]] }
108 0     0 0   sub format_h { $MoYs[$_[0]->[4]] }
109 0 0   0 0   sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
110              
111 0     0 0   sub format_d { $_[0]->[3] }
112 0     0 0   sub format_m { $_[0]->[4] + 1 }
113 0     0 0   sub format_o { $_[0]->[3] . '.' }
114              
115 0     0 0   sub format_Q { $MoY2[$_[0]->[4]] }
116              
117             sub str2time {
118 0     0 1   my ($self,$value) = @_;
119 0           map {$value=~s/(\s|^)$DoWs2[$_](\s)/$DoWs[$_]$2/ig} (0..6);
  0            
120 0           $value=~s/(\s+|^)\xed\xc1\xd2(\s+)/$1\xed\xd2\xd4$2/;
121 0           return $self->SUPER::str2time($value);
122             }
123              
124             1;
125              
126             __END__