TimeDate-2.33/0000755000076700000240000000000013661017051012452 5ustar nicolasstaffTimeDate-2.33/ChangeLog0000644000076700000240000002614613661014501014232 0ustar nicolasstaff2.33 -- Wed May 19 11:34:00 MT 2020 * Remove PAX Headers in tarball using GNU tar 2.32 -- Wed Mar 04 14:41:00 MT 2020 * Fix t/date.t to run on leap years [arc] 2.31 -- Thu Jan 16 14:00:00 MT 2020 * Fix year 2020 bug from t/getdate.t [Prajith] * Fix warnings from t/date.t * Fix pod issue in lib/Date/Parse.pm * Fix for French language using English day suffixes in %o [mitchjacksontech] * RT#84075: Fix Date::Parse::str2time century issue. [perlpilot] * Adds Occitan language. [Quenty31] * Migrate GitHub repo and bugtracker to atoomic/perl-TimeDate 2.30 -- Mon Feb 18 13:31:03 CST 2013 * Syncing distribution version number with Date::Parse, not functional changes 1.20 -- Sat Dec 12 06:38:14 CST 2009 * Typo => s/timezome/timezone/ [yanick] * RT#52387 Fix %s formating to use timelocal when no timezone is given * RT#51664 fix str2time('16 Oct 09') to not give a negative result 1.19 -- Fri Sep 25 13:59:41 CDT 2009 * Replace Date::Language::Hungarian with version from CPAN by Lee Goddard 1.18 -- Thu Sep 24 17:43:28 CDT 2009 * RT#49963 Skip pre 1970 date tests on Win32 * Added Date::Language::Hungarian (Konrad Lorinczi) 1.17 -- Sat Sep 19 10:56:12 CDT 2009 Bugfixes * RT#45067: Date::Format with %z gives wrong results for half-hour timezones (Ernesto Hernndez-Novich) * RT#48164: Date::Parse unable to set seconds correctly * RT#17396: Parse error for french date with 'mars' (march) as month Documentation * Fixed documentation for %e in Date::Format * Update documentation to remove Date::Format->language Enhancements * Add support for dates like Jul-13-1999 (Brett Warden) * Added Icelandic language (Tomas Edwardsson) * Added Romanian language (Doru Petrescu) * Added Russian language (Denis Poznyakov & Danil Pismenny) * Added Turkish language (Burak Gursoy) * Added Spanish language (Adrian Mugnolo) * Added Chinese language (Kang-min Liu) * Support parsing dates like 2002-02-26-10:37:21.141 as used by lpd * Support Z timezone when only the time is specified * Added METDST to Time::Zone * Added AKST/AKDT to Time::Zone Changes prior to 1.17 Change 814 on 2003/06/03 by (Graham Barr) Date::Parse - Time::Local in 5.8 does not support fractional seconds Change 813 on 2003/06/02 by (Graham Barr) Release 1.15 Change 812 on 2003/06/02 by (Graham Barr) Fix comments about Language implementation in Date::Parse (patch from Christian Hammers) Change 811 on 2003/06/02 by (Graham Barr) Fix short name for 'maart' to be 'mrt' as suggested by Frank Maas Change 810 on 2003/06/02 by (Graham Barr) Add %G format for GPS week (patch from Eric Richardson) Change 809 on 2003/06/02 by (Graham Barr) Language updates from Daniel Yacob Change 808 on 2003/06/02 by (Graham Barr) str2time("") should return undef Change 807 on 2003/06/02 by (Graham Barr) Added Swedish and Finnish languages from Matthew Musgrove Change 778 on 2003/03/03 by (Graham Barr) Added Chinese_GB language. Supplied by forehead (I don't even pretend tounderstand it) Change 777 on 2003/03/03 by (Graham Barr) Return fractional seconds when specified in an ISO date Change 776 on 2003/03/03 by (Graham Barr) New languages from Daniel Yacob Change 775 on 2003/03/03 by (Graham Barr) Fix UTC support on ISO dates Change 774 on 2003/03/03 by (Graham Barr) Allow a : in a timezone so the dates specified in RSS can be parsed (eg 2002-11-07T23:31:49-05:00) Patch from Kellan Change 773 on 2003/03/03 by (Graham Barr) Support parsing more formats Change 754 on 2002/11/03 by (Graham Barr) Release 1.14 Change 753 on 2002/11/03 by (Graham Barr) Fix bug parsing 2002-11-02 11pm Change 752 on 2002/11/03 by (Graham Barr) Add Greek language module from Matthew Musgrove Change 744 on 2002/09/16 by (Graham Barr) Add Date::Language::Brazilian and Date::Language::Danish to MANIFEST Change 743 on 2002/09/16 by (Graham Barr) Add Date::Language::Brazilian from Christian Tosta Add Date::Language::Danish from Lars Skjrlund Change 742 on 2002/09/16 by (Graham Barr) Time::Zone - Add some zones for Brazil Change 741 on 2002/09/16 by (Graham Barr) Time::Zone [cpan #1299] - Allow $ENV{TZ} to have zomes like EST5 Change 733 on 2002/06/13 by (Graham Barr) Date::Language::French - Fix missing ; Change 732 on 2002/06/06 by (Graham Barr) Release 1.13 Change 731 on 2002/06/06 by (Graham Barr) Fix pattern to allow single digits for month and day (eg '2002-6-1') Change 730 on 2002/06/03 by (Graham Barr) Release 1.12 Change 729 on 2002/06/03 by (Graham Barr) Fix month name abbreviations Change 720 on 2002/04/25 by (Graham Barr) Date::Parse - Make it work with 5.004 again Change 719 on 2002/04/25 by (Graham Barr) Prevent the ISO date pattern matching where it should not. ie there must not be a non-space character directly before the date string Change 718 on 2002/04/17 by (Graham Barr) Change French @Dsuf, from Peter Samuelson Change 712 on 2002/03/07 by (Graham Barr) Added %L format for month number as 1..12 from Adam Monsen Change 708 on 2002/02/28 by (Graham Barr) Release 1.11 Change 707 on 2002/02/28 by (Graham Barr) Fix format error in t/date.t Change 692 on 2002/01/09 by (Graham Barr) Be a bit more lenient on the ISO format Change 691 on 2002/01/02 by (Graham Barr) Fix typo in ISO-8601 formats in docs Change 690 on 2001/12/28 by (Graham Barr) Date::Format - Fix array dereference syntax typo Change 689 on 2001/12/28 by (Graham Barr) Date::Format - Fix doc typos Change 682 on 2001/11/20 by (Graham Barr) Date::Parse - Make the minutes and seconds parts of an ISO-8601 optional (patch from Christian Hammers) Change 681 on 2001/11/20 by (Graham Barr) Date::Parse - Allow AM/PM to be just A/P (eg Jul 13 1999 1:23P) as used by MySQL (patch from Drew Degentesh) Change 680 on 2001/11/20 by (Graham Barr) Time::Zone - Add CEST Central European Daylight Change 679 on 2001/11/20 by (Graham Barr) Date::Parse - Extract (but ignore) fractions of a second in an ISO8601 date string (patch from rayg at yahoo-inc.com) Change 678 on 2001/11/20 by (Graham Barr) Add %P to be am or pm Change 677 on 2001/11/20 by (Graham Barr) Date::Language::French - Um, the french have 7 days in the week just like everyone else Change 676 on 2001/11/20 by (Graham Barr) Date::Language::German - Fix abbrev for October (patch from Stefan Niederhauser) Change 634 on 2001/09/03 by (Graham Barr) Add a check for invalid years in format 1995-01-24 Change 580 on 2000/09/04 by (Graham Barr) Release 1.10 Change 579 on 2000/09/04 by (Graham Barr) Date::Parse - Support for more date formats Time::Zone - Added more zones Change 539 on 2000/06/14 by (Graham Barr) Documentation updates Change 536 on 2000/06/06 by (Graham Barr) Fix VERSION numbers Change 535 on 2000/06/06 by (Graham Barr) Date::Format - Added support for %O* to support output of roman numerals Change 443 on 2000/03/29 by (Graham Barr) Release 1.09 Change 442 on 2000/03/29 by (Graham Barr) Added PPD stuff to Makefile.PL Change 441 on 2000/03/29 by (Graham Barr) Date::Parse - Allow "s after the timezone Change 440 on 2000/03/29 by (Graham Barr) Date::Format - Fix doc for %c and %C Change 409 on 2000/03/28 by (Graham Barr) Moved .pm files into lib directory Change 408 on 2000/03/28 by (Graham Barr) str2time returns undef on error bit Time::Local returns -1. Check if the -1 is real or an error Change 407 on 2000/03/28 by (Graham Barr) Added Eastern European Summer Time EEST Change 268 on 1999/03/18 by (Graham Barr) Date::Format, Time::Zone - Fix problem with %z and %Z as suggested by Jason A Smith Change 267 on 1999/03/18 by (Graham Barr) - Make t/getdate.t more portable as suggested by Paul Schinder Change 250 on 1999/02/06 by (Graham Barr) Date::Format - Correct docs for %d and %e Change 249 on 1999/02/06 by (Graham Barr) Added Date::Language::Czech Change 180 on 1998/08/05 by (Graham Barr) Date::Language - Added Date::Language::French contributed by Emmanuel Bataille (bem@residents.frmug.org) - Split out the languages into .pm's Date::Parse - Added patch from Alan Burlison to Date::Parse to allow zone offests +7, +10 and +700 - Parse now supports GMT+0100 *** Release 1.08 Fri Jan 2 1998 (Graham Barr) Date::Format, Time::Zone - Fix for formatting %z and %Z all - Update Email address and year Tue Feb 17 1998 (Graham Barr) Date::Language - Added format_o to German Fri Sep 12 1997 (Graham Barr) Date::Parse - Added 'DST' to parser, it adjusts $zone by 3600 (but that may not be right in all cases) - Added a check to str2time to ensure valid values are passed to Time::Local, to avoid croak-ing - Fixed to treat AM and PM correctly when the hour is 12. (I hope :-) Time::Zone - Modified for Western Australia Tue 07 Jan 1996 o Release 1.07 o Fixed a problem in Time::Zone (had @l[8] instead of $l[8], doh! ) Thu 02 Jan 1996 o Release 1.06 o Fixed t/getdate.t o Date::Parse can now parse the date-format 960913, which apparently is fairly common in sweden. Wed 31 Jul 1996 o Release 1.05 o Modified Date::Format not to use single letter sub names, all format sub names are nore prefixed with format_ o Cleaned up Date/Format.pm so that AUTOLOAD is not required o Patched Date/Language.pm to add Norwegian. Thanks to Gisle Aas for the patch Thu 27 Jun 1996 o Added %z to Date::Format to output timezone in +/-0000 format o Added multi-language support via Date::Language,. Tue 25 Jun 1996 o Some code tidying up o added a new test, copied from Date::GetDate o improved performance Wed 22 May 1996 o Fixed a bug in the parser for dates in a default (local) timezone but a different dst Wed 15 May 1996 o Added support for mainframe type dates Fri 3 May 1996 o Added %s to date formatting at request of Josh Osborne . TimeDate-2.33/MANIFEST0000644000076700000240000000255213661017051013607 0ustar nicolasstaffChangeLog lib/Date/Format.pm lib/Date/Language.pm lib/Date/Language/Afar.pm lib/Date/Language/Amharic.pm lib/Date/Language/Austrian.pm lib/Date/Language/Brazilian.pm lib/Date/Language/Bulgarian.pm lib/Date/Language/Chinese.pm lib/Date/Language/Chinese_GB.pm lib/Date/Language/Czech.pm lib/Date/Language/Danish.pm lib/Date/Language/Dutch.pm lib/Date/Language/English.pm lib/Date/Language/Finnish.pm lib/Date/Language/French.pm lib/Date/Language/Gedeo.pm lib/Date/Language/German.pm lib/Date/Language/Greek.pm lib/Date/Language/Hungarian.pm lib/Date/Language/Icelandic.pm lib/Date/Language/Italian.pm lib/Date/Language/Norwegian.pm lib/Date/Language/Occitan.pm lib/Date/Language/Oromo.pm lib/Date/Language/Romanian.pm lib/Date/Language/Russian.pm lib/Date/Language/Russian_cp1251.pm lib/Date/Language/Russian_koi8r.pm lib/Date/Language/Sidama.pm lib/Date/Language/Somali.pm lib/Date/Language/Spanish.pm lib/Date/Language/Swedish.pm lib/Date/Language/Tigrinya.pm lib/Date/Language/TigrinyaEritrean.pm lib/Date/Language/TigrinyaEthiopian.pm lib/Date/Language/Turkish.pm lib/Date/Parse.pm lib/Time/Zone.pm lib/TimeDate.pm Makefile.PL MANIFEST This list of files README t/cpanrt.t t/date.t t/format.t t/getdate.t t/lang.t META.yml Module YAML meta-data (added by MakeMaker) META.json Module JSON meta-data (added by MakeMaker) TimeDate-2.33/t/0000755000076700000240000000000013661017050012714 5ustar nicolasstaffTimeDate-2.33/t/cpanrt.t0000644000076700000240000000363613661013703014401 0ustar nicolasstaffuse Date::Format qw(time2str strftime); use Date::Parse qw(strptime str2time); print "1..9\n"; my $i = 1; { # RT#45067 Date::Format with %z gives wrong results for half-hour timezones foreach my $zone (qw(-0430 -0445)) { my $zone_str = time2str("%Z %z", time, $zone); print "# $zone => $zone_str\n"; print "not " unless $zone_str eq "$zone $zone"; print "ok ", $i++, "\n"; } } { # RT#48164: Date::Parse unable to set seconds correctly foreach my $str ("2008.11.30 22:35 CET", "2008-11-30 22:35 CET") { my @t = strptime($str); my $t = join ":", map { defined($_) ? $_ : "-" } @t; print "# $str => $t\n"; print "not " unless $t eq "-:35:22:30:10:108:3600:20"; print "ok ", $i++, "\n"; } } { # RT#17396: Parse error for french date with 'mars' (march) as month use Date::Language; my $dateP = Date::Language->new('French'); my $timestamp = $dateP->str2time('4 mars 2005'); my ($ss, $mm, $hh, $day, $month, $year, $zone) = localtime $timestamp; $month++; $year += 1900; my $date = "$day/$month/$year"; print "# $date\n"; print "not " unless $date eq "4/3/2005"; print "ok ", $i++, "\n"; } { # [rt.cpan.org #52387] seconds since the Epoch, UCT my $time = time; my @lt = localtime(time); print "not " unless strftime("%s", @lt) eq $time; print "ok ", $i++, "\n"; print "not " unless time2str("%s",$time) eq $time; print "ok ", $i++, "\n"; } { # [rt.cpan.org #51664] Change in str2time behaviour between 1.16 and 1.19 print "not " if str2time('16 Oct 09') < 0; print "ok ", $i++, "\n"; } { # RT#84075: Date::Parse::str2time maps date in 1963 to 2063 my $this_year = 1900 + (gmtime(time))[5]; my $target_year = $this_year - 50; my $date = "$target_year-01-01 00:00:00 UTC"; my $time = str2time($date); my $year_parsed_as = 1900 + (gmtime($time))[5]; print "not " unless $year_parsed_as == $target_year; print "ok ", $i++, "\n"; } TimeDate-2.33/t/date.t0000644000076700000240000001132213661013703014016 0ustar nicolasstaff#!/usr/local/bin/perl -w use Date::Parse; use Date::Format qw(time2str); $data = qq!1995-01-24 1995-01-24T09:08:17.1823213 - 1935-01-24T09:08:17 - Fri Dec 17 00:00:00 1901 GMT Tue Jan 16 23:59:59 2038 GMT 2001-02-02 00:00:00 GMT 2035-02-02 00:00:00 GMT - 16 Jun 33 07:29:35 CST 2002-02-26-10:37:21.141 GMT Wed, 16 Jun 94 07:29:35 CST Wed, 16 Nov 94 07:29:35 CST Mon, 21 Nov 94 07:42:23 CST Mon, 21 Nov 94 04:28:18 CST Tue, 15 Nov 94 09:15:10 GMT Wed, 16 Nov 94 09:39:49 GMT Wed, 16 Nov 94 09:23:17 GMT Wed, 16 Nov 94 12:39:49 GMT Wed, 16 Nov 94 14:03:06 GMT Wed, 16 Nov 94 05:30:51 CST Thu, 17 Nov 94 03:19:30 CST Mon, 21 Nov 94 14:05:32 GMT Mon, 14 Nov 94 15:08:49 CST Wed, 16 Nov 94 14:48:06 GMT Thu, 17 Nov 94 14:22:03 GMT Wed, 16 Nov 94 14:36:00 GMT Wed, 16 Nov 94 09:23:17 GMT Wed, 16 Nov 94 10:01:43 GMT Wed, 16 Nov 94 15:03:35 GMT Mon, 21 Nov 94 13:55:19 GMT Wed, 16 Nov 94 08:46:11 CST 21 dec 17:05 21-dec 17:05 21/dec 17:05 21/dec/93 17:05 dec/21/93 17:05 Dec/21/1993 17:05:00 dec-21-1993 17:05 Dec-21-93 17:05:00 dec 21 1994 17:05 dec 21 94 17:05 dec 21 94 17:05 GMT dec 21 94 17:05 BST dec 21 94 00:05 -1700 dec 21 94 17:05 -1700 Wed, 9 Nov 1994 09:50:32 -0500 (EST) Thu, 13 Oct 94 10:13:13 -0700 Sat, 19 Nov 1994 16:59:14 +0100 Thu, 3 Nov 94 14:10:47 EST Thu, 3 Nov 94 21:51:09 EST Fri, 4 Nov 94 9:24:52 EST Wed, 9 Nov 94 09:38:54 EST Mon, 14 Nov 94 13:20:12 EST Wed, 16 Nov 94 17:09:13 EST Tue, 15 Nov 94 12:27:01 PST Fri, 18 Nov 1994 07:34:05 -0600 Mon, 21 Nov 94 14:34:28 -0500 Fri, 18 Nov 1994 12:05:47 -0800 (PST) Fri, 18 Nov 1994 12:36:26 -0800 (PST) Wed, 16 Nov 1994 15:58:58 GMT 2000 10:02:18 "GMT" Sun, 06 Nov 94 14:27:40 -0500 Mon, 07 Nov 94 08:20:13 -0500 Mon, 07 Nov 94 16:48:42 -0500 Wed, 09 Nov 94 15:46:16 -0500 Fri, 4 Nov 94 16:17:40 "PST Wed, 16 Nov 94 12:43:37 "PST Sun, 6 Nov 1994 02:38:17 -0800 Tue, 1 Nov 1994 13:53:49 -0500 Tue, 15 Nov 94 08:31:59 +0100 Sun, 6 Nov 1994 11:09:12 -0500 (IST) Fri, 4 Nov 94 12:52:10 EST Mon, 31 Oct 1994 14:17:39 -0500 (EST) Mon, 14 Nov 94 11:25:00 CST Mon, 14 Nov 94 13:26:29 CST Fri, 18 Nov 94 8:42:47 CST Thu, 17 Nov 94 14:32:01 +0900 Wed, 2 Nov 94 18:16:31 +0100 Fri, 18 Nov 94 10:46:26 +0100 Tue, 8 Nov 1994 22:39:28 +0200 Wed, 16 Nov 1994 10:01:08 -0500 (EST) Wed, 2 Nov 1994 16:59:42 -0800 Wed, 9 Nov 94 10:00:23 PST Fri, 18 Nov 94 17:01:43 PST Mon, 14 Nov 1994 14:47:46 -0500 Mon, 21 Nov 1994 04:56:04 -0500 (EST) Mon, 21 Nov 1994 11:50:12 -0800 Sat, 5 Nov 1994 14:04:16 -0600 (CST) Sat, 05 Nov 94 13:10:13 MST Wed, 02 Nov 94 10:47:48 -0800 Wed, 02 Nov 94 13:19:15 -0800 Thu, 03 Nov 94 15:27:07 -0800 Fri, 04 Nov 94 09:12:12 -0800 Wed, 9 Nov 1994 10:13:03 +0000 (GMT) Wed, 9 Nov 1994 15:28:37 +0000 (GMT) Wed, 2 Nov 1994 17:37:41 +0100 (MET) 05 Nov 94 14:22:19 PST 16 Nov 94 22:28:20 PST Tue, 1 Nov 1994 19:51:15 -0800 Wed, 2 Nov 94 12:21:23 GMT Fri, 18 Nov 94 18:07:03 GMT Wed, 16 Nov 1994 11:26:27 -0500 Sun, 6 Nov 1994 13:48:49 -0500 Tue, 8 Nov 1994 13:19:37 -0800 Fri, 18 Nov 1994 11:01:12 -0800 Mon, 21 Nov 1994 00:47:58 -0500 Mon, 7 Nov 1994 14:22:48 -0800 (PST) Wed, 16 Nov 1994 15:56:45 -0800 (PST) Thu, 3 Nov 1994 13:17:47 +0000 Wed, 9 Nov 1994 17:32:50 -0500 (EST) Wed, 9 Nov 94 16:31:52 PST Wed, 09 Nov 94 10:41:10 -0800 Wed, 9 Nov 94 08:42:22 MST Mon, 14 Nov 1994 08:32:13 -0800 Mon, 14 Nov 1994 11:34:32 -0500 (EST) Mon, 14 Nov 94 16:48:09 GMT Tue, 15 Nov 1994 10:27:33 +0000 Wed, 02 Nov 94 13:56:54 MST Thu, 03 Nov 94 15:24:45 MST Thu, 3 Nov 1994 15:13:53 -0700 (MST) Fri, 04 Nov 94 08:15:13 MST Thu, 3 Nov 94 18:15:47 EST Tue, 08 Nov 94 07:02:33 MST Thu, 3 Nov 94 18:15:47 EST Tue, 15 Nov 94 07:26:05 MST Wed, 2 Nov 1994 00:00:55 -0600 (CST) Sun, 6 Nov 1994 01:19:13 -0600 (CST) Mon, 7 Nov 1994 23:16:57 -0600 (CST) Tue, 08 Nov 1994 13:21:21 -0600 Mon, 07 Nov 94 13:47:37 PST Tue, 08 Nov 94 11:23:19 PST Tue, 01 Nov 1994 11:28:25 -0800 Tue, 15 Nov 1994 13:11:47 -0800 Tue, 15 Nov 1994 13:18:38 -0800 Tue, 15 Nov 1994 0:18:38 -0800 10:00:00Z 10:00:00 10:00 10:00 +100 10:00 +0100 20020722T100000Z Jul 22 10:00:00 UTC 2002 2002-07-22 10:00:00Z 2002-07-22 10:00:00 Z 2002-07-22 10:00 Z 2002-07-22 10:00Z 2002-07-22 10:00 +100 2002-07-22 10:00 +0100 !; @data = split(/\n/, $data); print "1..", 1+@data,"\n"; print defined(str2time("")) ? "not ok 1\n" : "ok 1\n"; $loop = 2; foreach (@data) { my $pre_1970 = s/^-\s*//; if ($pre_1970 and $^O eq "MSWin32") { print "ok ",$loop++," # skip\n"; next; } $time = str2time($_); if(defined $time) { $time = int $time; $x = time2str("%a %b %e %T %Y %Z",$time,'GMT'); printf "%-40s\t%s\n", $_, $x; $y = str2time($x); print "",($y == $time) ? "ok $loop\n" : "not ok $loop # $y != $time\n"; } else { print "not ok $loop # $_\n"; } $loop++; } TimeDate-2.33/t/lang.t0000644000076700000240000000053413661013703014025 0ustar nicolasstaff#!/usr/local/bin/perl -w use Date::Language; my $time = time; my $v; my @lang = qw(English German Italian Bulgarian); print "1..", scalar(@lang),"\n"; my $loop = 1; my $lang; foreach $lang (@lang) { my $l = Date::Language->new($lang); $v = $l->str2time($l->ctime($time)); print $v == $time ? "ok $loop\n" : "FAIL $loop\n"; $loop++; } TimeDate-2.33/t/format.t0000644000076700000240000000455413661013703014402 0ustar nicolasstaffuse Test::More tests => 202; use Date::Format qw(ctime time2str); use Date::Language; use utf8; my ($pkg, $t,$language); $pkg = 'Date::Format::Generic'; while() { chomp; if (/^(\d+)/) { $t = $1; next; } elsif (/^(\w+)/) { $language = $1; $pkg = Date::Language->new($language); next; } my($fmt,$res) = split(/\t+/,$_); my $str = $pkg->time2str($fmt,$t,'GMT'); is($str, $res,"$fmt"); } __DATA__ 936709362 # Tue Sep 7 11:22:42 1999 GMT %y 99 %Y 1999 %% % %a Tue %A Tuesday %b Sep %B September %c 09/07/99 13:02:42 %C Tue Sep 7 13:02:42 GMT 1999 %d 07 %e 7 %D 09/07/99 %G 1026 %h Sep %H 13 %I 01 %j 250 %k 13 %l 1 %L 9 %m 09 %M 02 %o 7th %p PM %q 3 %r 01:02:42 PM %R 13:02 %s 936709362 %S 42 %T 13:02:42 %U 36 %w 2 %W 36 %x 09/07/99 %X 13:02:42 %y 99 %Y 1999 %Z GMT %z +0000 %Od VII %Oe VII %OH XIII %OI I %Oj CCL %Ok XIII %Ol I %Om IX %OM II %Oq III %OY MCMXCIX %Oy XCIX German %y 99 %Y 1999 %% % %a Die %A Dienstag %b Sep %B September %c 09/07/99 13:02:42 %C Die Sep 7 13:02:42 GMT 1999 %d 07 %e 7 %D 09/07/99 %h Sep %H 13 %I 01 %j 250 %k 13 %l 1 %L 9 %m 09 %M 02 %o 7. %p PM %q 3 %r 01:02:42 PM %R 13:02 %s 936709362 %S 42 %T 13:02:42 %U 36 %w 2 %W 36 %x 09/07/99 %X 13:02:42 %y 99 %Y 1999 %Z GMT %z +0000 %Od VII %Oe VII %OH XIII %OI I %Oj CCL %Ok XIII %Ol I %Om IX %OM II %Oq III %OY MCMXCIX %Oy XCIX Italian %y 99 %Y 1999 %% % %a Mar %A Martedi %b Set %B Settembre %c 09/07/99 13:02:42 %C Mar Set 7 13:02:42 GMT 1999 %d 07 %e 7 %D 09/07/99 %h Set %H 13 %I 01 %j 250 %k 13 %l 1 %L 9 %m 09 %M 02 %o 7th %p PM %q 3 %r 01:02:42 PM %R 13:02 %s 936709362 %S 42 %T 13:02:42 %U 36 %w 2 %W 36 %x 09/07/99 %X 13:02:42 %y 99 %Y 1999 %Z GMT %z +0000 %Od VII %Oe VII %OH XIII %OI I %Oj CCL %Ok XIII %Ol I %Om IX %OM II %Oq III %OY MCMXCIX %Oy XCIX 316648800 # Wed Jan 14 00:00:00 1980 %G 1 #0 is interpreted as empty string Bulgarian 1283926923 # ср сеп 8 09:22:03 EET 2010 /Tue Sep 06:22:03 GMT 2010 %y 10 %Y 2010 %% % %a ср %A сряда %b сеп %B септември %c 09/08/10 06:22:03 %C ср сеп 8 06:22:03 GMT 2010 %d 08 %e 8 %D 09/08/10 %G 1600 %h сеп %H 06 %I 06 %j 251 %k 6 %l 6 %L 9 %m 09 %M 22 %o 8ми %p AM %q 3 %r 06:22:03 AM %R 06:22 %s 1283926923 %S 03 %T 06:22:03 %U 36 %w 3 %W 36 %x 09/08/10 %X 06:22:03 %Z GMT %z +0000 %z +0000 %Od VIII %Oe VIII %OH VI %OI VI %Oj CCLI %Ok VI %Ol VI %Om IX %OM XXII %Oq III %OY MMX %Oy X TimeDate-2.33/t/getdate.t0000644000076700000240000001766113661013703014532 0ustar nicolasstaff#!/usr/local/bin/perl -w #Thanks to Andreas Koenig for converting all those dates to numbers #and adding the folloing acknowledgement into Date/t/getdate.t #Thanks to Graham Barr for writing these tests. Slightly adjusted for #the C version by Andreas Koenig, 96-06-08. use Date::Parse; $data = qq!1995-01-24 ;790905600 1995-06-24 ;803952000 92/01/02 12:01 ;694353660 92/01/02 12:01 AM ;694310460 92/01/02 12:01 PM ;694353660 2002-11-02 11pm GMT ;1036278000 2002-11-02 11 pm GMT ;1036278000 1995-01-24 GMT ;790905600 1995-01-24 BST ;790902000 1995-06-24 GMT ;803952000 1995-06-24 BST ;803948400 1992-1-2 12:01 GMT ;694353660 1992-1-2-12:01:00 GMT ;694353660 Wed, 16 Jun 94 07:29:35 CST ;771773375 Wed,16 Jun 94 07:29:35 CST ;771773375 Wed, 16 Nov 94 07:29:35 CST ;784992575 Mon, 21 Nov 94 07:42:23 CST ;785425343 Mon, 21 Nov 94 04:28:18 CST ;785413698 Tue, 15 Nov 94 09:15:10 GMT ;784890910 Wed, 16 Nov 94 09:39:49 GMT ;784978789 Wed, 16 Nov 94 09:23:17 GMT ;784977797 Wed, 16 Nov 94 12:39:49 GMT ;784989589 Wed, 16 Nov 94 14:03:06 GMT ;784994586 Wed, 16 Nov 94 05:30:51 CST ;784985451 Thu, 17 Nov 94 03:19:30 CST ;785063970 1994:11:21T14:05:32+0000 ;785426732 Mon, 21 Nov 94 14:05:32 GMT ;785426732 Mon, 14 Nov 94 15:08:49 CST ;784847329 Wed, 16 Nov 94 14:48:06 GMT ;784997286 Thu, 17 Nov 94 14:22:03 GMT ;785082123 Wed, 16 Nov 94 14:36:00 GMT ;784996560 Wed, 16 Nov 94 09:23:17 GMT ;784977797 Wed, 16 Nov 94 10:01:43 GMT ;784980103 Wed, 16 Nov 94 15:03:35 GMT ;784998215 Mon, 21 Nov 94 13:55:19 GMT ;785426119 Wed, 16 Nov 94 08:46:11 CST ;784997171 Wed, 9 Nov 1994 09:50:32 -0500 (EST) ;784392632 Thu, 13 Oct 94 10:13:13 -0700 ;782068393 Sat, 19 Nov 1994 16:59:14 +0100 ;785260754 Thu, 3 Nov 94 14:10:47 EST ;783889847 Thu, 3 Nov 94 21:51:09 EST ;783917469 Fri, 4 Nov 94 9:24:52 EST ;783959092 Wed, 9 Nov 94 09:38:54 EST ;784391934 Mon, 14 Nov 94 13:20:12 EST ;784837212 Wed, 16 Nov 94 17:09:13 EST ;785023753 Tue, 15 Nov 94 12:27:01 PST ;784931221 Fri, 18 Nov 1994 07:34:05 -0600 ;785165645 Mon, 21 Nov 94 14:34:28 -0500 ;785446468 Fri, 18 Nov 1994 12:05:47 -0800 (PST);785189147 Fri, 18 Nov 1994 12:36:26 -0800 (PST);785190986 Wed, 16 Nov 1994 15:58:58 GMT ;785001538 Sun, 06 Nov 94 14:27:40 -0500 ;784150060 Mon, 07 Nov 94 08:20:13 -0500 ;784214413 Mon, 07 Nov 94 16:48:42 -0500 ;784244922 Wed, 09 Nov 94 15:46:16 -0500 ;784413976 Sun, 6 Nov 1994 02:38:17 -0800 ;784118297 Tue, 1 Nov 1994 13:53:49 -0500 ;783716029 Tue, 15 Nov 94 08:31:59 +0100 ;784884719 Sun, 6 Nov 1994 11:09:12 -0500 (IST) ;784138152 Fri, 4 Nov 94 12:52:10 EST ;783971530 Mon, 31 Oct 1994 14:17:39 -0500 (EST);783631059 Mon, 14 Nov 94 11:25:00 CST ;784833900 Mon, 14 Nov 94 13:26:29 CST ;784841189 Fri, 18 Nov 94 8:42:47 CST ;785169767 Thu, 17 Nov 94 14:32:01 +0900 ;785050321 Wed, 2 Nov 94 18:16:31 +0100 ;783796591 Fri, 18 Nov 94 10:46:26 +0100 ;785151986 Tue, 8 Nov 1994 22:39:28 +0200 ;784327168 Wed, 16 Nov 1994 10:01:08 -0500 (EST);784998068 Wed, 2 Nov 1994 16:59:42 -0800 ;783824382 Wed, 9 Nov 94 10:00:23 PST ;784404023 Fri, 18 Nov 94 17:01:43 PST ;785206903 Mon, 14 Nov 1994 14:47:46 -0500 ;784842466 Mon, 21 Nov 1994 04:56:04 -0500 (EST);785411764 Mon, 21 Nov 1994 11:50:12 -0800 ;785447412 Sat, 5 Nov 1994 14:04:16 -0600 (CST) ;784065856 Sat, 05 Nov 94 13:10:13 MST ;784066213 Wed, 02 Nov 94 10:47:48 -0800 ;783802068 Wed, 02 Nov 94 13:19:15 -0800 ;783811155 Thu, 03 Nov 94 15:27:07 -0800 ;783905227 Fri, 04 Nov 94 09:12:12 -0800 ;783969132 Wed, 9 Nov 1994 10:13:03 +0000 (GMT) ;784375983 Wed, 9 Nov 1994 15:28:37 +0000 (GMT) ;784394917 Wed, 2 Nov 1994 17:37:41 +0100 (MET) ;783794261 05 Nov 94 14:22:19 PST ;784074139 16 Nov 94 22:28:20 PST ;785053700 Tue, 1 Nov 1994 19:51:15 -0800 ;783748275 Wed, 2 Nov 94 12:21:23 GMT ;783778883 Fri, 18 Nov 94 18:07:03 GMT ;785182023 Wed, 16 Nov 1994 11:26:27 -0500 ;785003187 Sun, 6 Nov 1994 13:48:49 -0500 ;784147729 Tue, 8 Nov 1994 13:19:37 -0800 ;784329577 Fri, 18 Nov 1994 11:01:12 -0800 ;785185272 Mon, 21 Nov 1994 00:47:58 -0500 ;785396878 Mon, 7 Nov 1994 14:22:48 -0800 (PST) ;784246968 Wed, 16 Nov 1994 15:56:45 -0800 (PST);785030205 Thu, 3 Nov 1994 13:17:47 +0000 ;783868667 Wed, 9 Nov 1994 17:32:50 -0500 (EST) ;784420370 Wed, 9 Nov 94 16:31:52 PST ;784427512 Wed, 09 Nov 94 10:41:10 -0800 ;784406470 Wed, 9 Nov 94 08:42:22 MST ;784395742 Mon, 14 Nov 1994 08:32:13 -0800 ;784830733 Mon, 14 Nov 1994 11:34:32 -0500 (EST);784830872 Mon, 14 Nov 94 16:48:09 GMT ;784831689 Tue, 15 Nov 1994 10:27:33 +0000 ;784895253 Wed, 02 Nov 94 13:56:54 MST ;783809814 Thu, 03 Nov 94 15:24:45 MST ;783901485 Thu, 3 Nov 1994 15:13:53 -0700 (MST) ;783900833 Fri, 04 Nov 94 08:15:13 MST ;783962113 Thu, 3 Nov 94 18:15:47 EST ;783904547 Tue, 08 Nov 94 07:02:33 MST ;784303353 Thu, 3 Nov 94 18:15:47 EST ;783904547 Tue, 15 Nov 94 07:26:05 MST ;784909565 Wed, 2 Nov 1994 00:00:55 -0600 (CST) ;783756055 Sun, 6 Nov 1994 01:19:13 -0600 (CST) ;784106353 Mon, 7 Nov 1994 23:16:57 -0600 (CST) ;784271817 Tue, 08 Nov 1994 13:21:21 -0600 ;784322481 Mon, 07 Nov 94 13:47:37 PST ;784244857 Tue, 08 Nov 94 11:23:19 PST ;784322599 Tue, 01 Nov 1994 11:28:25 -0800 ;783718105 Tue, 15 Nov 1994 13:11:47 -0800 ;784933907 Tue, 15 Nov 1994 13:18:38 -0800 ;784934318 Tue, 15 Nov 1994 0:18:38 -0800 ;784887518 Jul 13 1999 1:23P GMT ;931872180 Jul 13 1999 1:23P.M GMT ;931872180 Jul 13 1999 1:23P.M. GMT ;931872180 Jul-13-1999 1:23P.M GMT ;931872180 Jul/13/1999 1:23P.M. GMT ;931872180 2001-02-26T13:44:12-0700 ;983220252 2001-02-26T13:44-0700 ;983220240 2001-02-26T13-0700 ;983217600 2001-02-26T13-44-12-0700 ;983220252 2001-02-26T13-44-0700 ;983220240 2001-02-26T13-0700 ;983217600 07/Nov/2000:16:45:56 +0100 ;973611956 2002-11-07T23:31:49-05:00 ;1036729909 2003-02-17T07:45:56Z ;1045467956 2003-02-17T08:14:07.198189+0000 ;1045469647.198189 20020722T100000Z ;1027332000 Jul 22 10:00:00 UTC 2002 ;1027332000 2002-07-22 10:00:00Z ;1027332000 2002-07-22 10:00:00 Z ;1027332000 2002-07-22 10:00 Z ;1027332000 2002-07-22 10:00Z ;1027332000 2002-07-22 10:00 +100 ;1027328400 2002-07-22 10:00 +0100 ;1027328400 !; require Time::Local; my $offset = Time::Local::timegm(0,0,0,1,0,1970); @data = split(/\n/, $data); print "1..", scalar(@data),"\n"; $loop = 1; printf "# offset = %d\n", $offset; foreach (@data){ my($str,$time_expect) = split ';', $_; my $time = Date::Parse::str2time($str); if($loop < 6) { # The first five tests are parsed in the current time zone # But the check number is in GMT my @lt = localtime($time_expect); my @gt = gmtime($time_expect); $tzsec = ($gt[1] - $lt[1]) * 60 + ($gt[2] - $lt[2]) * 3600; my($lday,$gday) = ($lt[7],$gt[7]); if($lt[5] > $gt[5]) { $tzsec -= 24 * 3600; } elsif($gt[5] > $lt[5]) { $tzsec += 24 * 3600; } else { $tzsec += ($gt[7] - $lt[7]) * (24 * 3600); } $time -= $tzsec; } $time_expect += $offset; if(defined($time) and $time==$time_expect) { print "ok $loop\n"; } else { require Date::Format; print "-"x50,"\nFAIL $loop\n"; printf "%s\nDiff: %d\n", $str, $time - $time_expect; printf "Expect: %10f %s",$time_expect,Date::Format::ctime($time_expect); printf "Got: %10f %s",$time, Date::Format::ctime($time); } $loop++; } TimeDate-2.33/README0000644000076700000240000000145311310706316013333 0ustar nicolasstaffThis is the perl5 TimeDate distribution. It requires perl version 5.003 or later This distribution replaces my earlier GetDate distribution, which was only a date parser. The date parser contained in this distribution is far superior to the yacc based parser, and a *lot* fatser. The parser contained here will only parse absolute dates, if you want a date parser that can parse relative dates then take a look at the Time modules by David Muir on CPAN. You install the library by running these commands: perl Makefile.PL make make test make install Please report any bugs/suggestions to Copyright 1995-2009 Graham Barr. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Share and Enjoy! Graham TimeDate-2.33/META.yml0000644000076700000240000000116213661017050013722 0ustar nicolasstaff--- abstract: unknown author: - 'Graham Barr ' build_requires: ExtUtils::MakeMaker: '0' configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 1 generated_by: 'ExtUtils::MakeMaker version 7.44, CPAN::Meta::Converter version 2.150010' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: '1.4' name: TimeDate no_index: directory: - t - inc resources: bugtracker: https://github.com/atoomic/perl-TimeDate/issues repository: https://github.com/atoomic/perl-TimeDate version: '2.33' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' TimeDate-2.33/lib/0000755000076700000240000000000013661017050013217 5ustar nicolasstaffTimeDate-2.33/lib/Date/0000755000076700000240000000000013661017050014074 5ustar nicolasstaffTimeDate-2.33/lib/Date/Language/0000755000076700000240000000000013661017050015617 5ustar nicolasstaffTimeDate-2.33/lib/Date/Language/Icelandic.pm0000644000076700000240000000201511310706316020025 0ustar nicolasstaff## ## Icelandic tables ## package Date::Language::Icelandic; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.01"; @MoY = qw(Janar Febrar Mars Aprl Ma Jni Jli gst September Oktber Nvember Desember); @MoYs = qw(Jan Feb Mar Apr Ma Jn Jl g Sep Okt Nv Des); @DoW = qw(Sunnudagur Mnudagur rijudagur Mivikudagur Fimmtudagur Fstudagur Laugardagur Sunnudagur); @DoWs = qw(Sun Mn ri Mi Fim Fs Lau Sun); use Date::Language::English (); @AMPM = @{Date::Language::English::AMPM}; @Dsuf = @{Date::Language::English::Dsuf}; @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] } 1; TimeDate-2.33/lib/Date/Language/Occitan.pm0000644000076700000240000000170413661013703017540 0ustar nicolasstaff## ## Occitan tables, contributed by Quentn PAGÈS ## package Date::Language::Occitan; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.04"; @DoW = qw(dimenge diluns dimars dimècres dijòus divendres dissabte); @MoY = qw(genièr febrièr mars abrial mai junh julhet agost octòbre novembre decembre); @DoWs = map { substr($_,0,3) } @DoW; @MoYs = map { substr($_,0,3) } @MoY; $MoYs[6] = 'jul'; @AMPM = qw(AM PM); @Dsuf = ((qw(er e e e e e e e e e)) x 3, 'er'); @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] } 1; TimeDate-2.33/lib/Date/Language/Spanish.pm0000644000076700000240000000163211310706054017562 0ustar nicolasstaff## ## Spanish tables ## package Date::Language::Spanish; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.00"; @DoW = qw(domingo lunes martes mircoles jueves viernes sbado); @MoY = qw(enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre); @DoWs = map { substr($_,0,3) } @DoW; @MoYs = map { substr($_,0,3) } @MoY; @AMPM = qw(AM PM); @Dsuf = ((qw(ro do ro to to to mo vo no mo)) x 3, 'ro'); @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] } 1; TimeDate-2.33/lib/Date/Language/Hungarian.pm0000644000076700000240000000412511310706316020072 0ustar nicolasstaff## ## Hungarian tables based on English ## # # This is a just-because-I-stumbled-across-it # -and-my-wife-is-Hungarian release: if Graham or # someone adds to docs to Date::Format, I'd be # glad to correct bugs and extend as neeed. # package Date::Language::Hungarian; =head1 NAME Date::Language::Hungarian - Magyar format for Date::Format =head1 SYNOPSIS my $lang = Date::Language->new('Hungarian'); print $lang->time2str("%a %b %e %T %Y", time); @lt = localtime(time); print $lang->time2str($template, time); print $lang->strftime($template, @lt); print $lang->time2str($template, time, $zone); print $lang->strftime($template, @lt, $zone); print $lang->ctime(time); print $lang->asctime(@lt); print $lang->ctime(time, $zone); print $lang->asctime(@lt, $zone); See L. =head1 AUTHOR Paula Goddard (paula -at- paulacska -dot- com) =head1 LICENCE Made available under the same terms as Perl itself. =cut use strict; use warnings; use base "Date::Language"; use vars qw( @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); $VERSION = "1.01"; @DoW = qw(Vasrnap Htf Kedd Szerda Cstrtk Pntek Szombat); @MoY = qw(Janur Februr Mrcius prilis Mjus Jnius Jlius Augusztus Szeptember Oktber November December); @DoWs = map { substr($_,0,3) } @DoW; @MoYs = map { substr($_,0,3) } @MoY; @AMPM = qw(DE. DU.); # There is no 'th or 'nd in Hungarian, just a dot @Dsuf = (".") x 31; @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_P { lc($_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0]) } sub format_o { $_[0]->[3].'.' } sub format_D { &format_y . "." . &format_m . "." . &format_d } sub format_y { sprintf("%02d",$_[0]->[5] % 100) } sub format_d { sprintf("%02d",$_[0]->[3]) } sub format_m { sprintf("%02d",$_[0]->[4] + 1) } 1; TimeDate-2.33/lib/Date/Language/Turkish.pm0000755000076700000240000000403711310706316017614 0ustar nicolasstaff#----------------------------------------------------# # # Turkish tables # Burak Grsoy # Last modified: Sat Nov 15 20:28:32 2003 # # use Date::Language; # my $turkish = Date::Language->new('Turkish'); # print $turkish->time2str("%e %b %Y, %a %T\n", time); # print $turkish->str2time("25 Haz 1996 21:09:55 +0100"); #----------------------------------------------------# package Date::Language::Turkish; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION %DsufMAP); @ISA = qw(Date::Language); $VERSION = "1.0"; @DoW = qw(Pazar Pazartesi Sal aramba Perembe Cuma Cumartesi); @MoY = qw(Ocak ubat Mart Nisan Mays Haziran Temmuz Austos Eyll Ekim Kasm Aralk); @DoWs = map { substr($_,0,3) } @DoW; $DoWs[1] = 'Pzt'; # Since we'll get two 'Paz' s $DoWs[-1] = 'Cmt'; # Since we'll get two 'Cum' s @MoYs = map { substr($_,0,3) } @MoY; @AMPM = ('',''); # no am-pm thingy # not easy as in english... maybe we can just use a dot "." ? :) %DsufMAP = ( (map {$_ => 'inci', $_+10 => 'inci', $_+20 => 'inci' } 1,2,5,8 ), (map {$_ => 'nci', $_+10 => 'nci', $_+20 => 'nci' } 7 ), (map {$_ => 'nci', $_+10 => 'nci', $_+20 => 'nci' } 2 ), (map {$_ => 'nc', $_+10 => 'nc', $_+20 => 'nc' } 3,4 ), (map {$_ => 'uncu', $_+10 => 'uncu', $_+20 => 'uncu' } 9 ), (map {$_ => 'nc', $_+10 => 'nc', $_+20 => 'nc' } 6 ), (map {$_ => 'uncu', } 10,30 ), 20 => 'nci', 31 => 'inci', ); @Dsuf = map{ $DsufMAP{$_} } sort {$a <=> $b} keys %DsufMAP; @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 { '' } # disable sub format_P { '' } # disable sub format_o { sprintf("%2d%s",$_[0]->[3],$Dsuf[$_[0]->[3]-1]) } 1; __END__ TimeDate-2.33/lib/Date/Language/Greek.pm0000644000076700000240000000541211150613150017206 0ustar nicolasstaff## ## Greek tables ## ## Traditional date format is: DoW DD{eta} MoY Year (%A %o %B %Y) ## ## Matthew Musgrove ## Translations gratiously provided by Menelaos Stamatelos ## This module returns unicode (utf8) encoded characters. You will need to ## take the necessary steps for this to display correctly. ## package Date::Language::Greek; use utf8; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.00"; @DoW = ( "\x{039a}\x{03c5}\x{03c1}\x{03b9}\x{03b1}\x{03ba}\x{03ae}", "\x{0394}\x{03b5}\x{03c5}\x{03c4}\x{03ad}\x{03c1}\x{03b1}", "\x{03a4}\x{03c1}\x{03af}\x{03c4}\x{03b7}", "\x{03a4}\x{03b5}\x{03c4}\x{03ac}\x{03c1}\x{03c4}\x{03b7}", "\x{03a0}\x{03ad}\x{03bc}\x{03c0}\x{03c4}\x{03b7}", "\x{03a0}\x{03b1}\x{03c1}\x{03b1}\x{03c3}\x{03ba}\x{03b5}\x{03c5}\x{03ae}", "\x{03a3}\x{03ac}\x{03b2}\x{03b2}\x{03b1}\x{03c4}\x{03bf}", ); @MoY = ( "\x{0399}\x{03b1}\x{03bd}\x{03bf}\x{03c5}\x{03b1}\x{03c1}\x{03af}\x{03bf}\x{03c5}", "\x{03a6}\x{03b5}\x{03b2}\x{03c1}\x{03bf}\x{03c5}\x{03b1}\x{03c1}\x{03af}\x{03bf}\x{03c5}", "\x{039c}\x{03b1}\x{03c1}\x{03c4}\x{03af}\x{03bf}\x{03c5}", "\x{0391}\x{03c0}\x{03c1}\x{03b9}\x{03bb}\x{03af}\x{03c5}", "\x{039c}\x{03b1}\x{0390}\x{03bf}\x{03c5}", "\x{0399}\x{03bf}\x{03c5}\x{03bd}\x{03af}\x{03bf}\x{03c5}", "\x{0399}\x{03bf}\x{03c5}\x{03bb}\x{03af}\x{03bf}\x{03c5}", "\x{0391}\x{03c5}\x{03b3}\x{03bf}\x{03cd}\x{03c3}\x{03c4}\x{03bf}\x{03c5}", "\x{03a3}\x{03b5}\x{03c0}\x{03c4}\x{03b5}\x{03bc}\x{03c4}\x{03bf}\x{03c5}", "\x{039f}\x{03ba}\x{03c4}\x{03c9}\x{03b2}\x{03c1}\x{03af}\x{03bf}\x{03c5}", "\x{039d}\x{03bf}\x{03b5}\x{03bc}\x{03b2}\x{03c1}\x{03af}\x{03bf}\x{03c5}", "\x{0394}\x{03b5}\x{03ba}\x{03b5}\x{03bc}\x{03b2}\x{03c1}\x{03bf}\x{03c5}", ); @DoWs = ( "\x{039a}\x{03c5}", "\x{0394}\x{03b5}", "\x{03a4}\x{03c1}", "\x{03a4}\x{03b5}", "\x{03a0}\x{03b5}", "\x{03a0}\x{03b1}", "\x{03a3}\x{03b1}", ); @MoYs = ( "\x{0399}\x{03b1}\x{03bd}", "\x{03a6}\x{03b5}", "\x{039c}\x{03b1}\x{03c1}", "\x{0391}\x{03c0}\x{03c1}", "\x{039c}\x{03b1}", "\x{0399}\x{03bf}\x{03c5}\x{03bd}", "\x{0399}\x{03bf}\x{03c5}\x{03bb}", "\x{0391}\x{03c5}\x{03b3}", "\x{03a3}\x{03b5}\x{03c0}", "\x{039f}\x{03ba}", "\x{039d}\x{03bf}", "\x{0394}\x{03b5}", ); @AMPM = ("\x{03c0}\x{03bc}", "\x{03bc}\x{03bc}"); @Dsuf = ("\x{03b7}" x 31); @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_o { sprintf("%2d%s",$_[0]->[3],"\x{03b7}") } sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] } 1; TimeDate-2.33/lib/Date/Language/TigrinyaEritrean.pm0000644000076700000240000000356011150613150021433 0ustar nicolasstaff## ## Tigrinya-Eritrean tables ## package Date::Language::TigrinyaEritrean; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.00"; if ( $] >= 5.006 ) { @DoW = ( "\x{1230}\x{1295}\x{1260}\x{1275}", "\x{1230}\x{1291}\x{12ed}", "\x{1230}\x{1209}\x{1235}", "\x{1228}\x{1261}\x{12d5}", "\x{1213}\x{1219}\x{1235}", "\x{12d3}\x{122d}\x{1262}", "\x{1240}\x{12f3}\x{121d}" ); @MoY = ( "\x{1303}\x{1295}\x{12e9}\x{12c8}\x{122a}", "\x{134c}\x{1265}\x{1229}\x{12c8}\x{122a}", "\x{121b}\x{122d}\x{127d}", "\x{12a4}\x{1355}\x{1228}\x{120d}", "\x{121c}\x{12ed}", "\x{1301}\x{1295}", "\x{1301}\x{120b}\x{12ed}", "\x{12a6}\x{1308}\x{1235}\x{1275}", "\x{1234}\x{1355}\x{1274}\x{121d}\x{1260}\x{122d}", "\x{12a6}\x{12ad}\x{1270}\x{12cd}\x{1260}\x{122d}", "\x{1296}\x{126c}\x{121d}\x{1260}\x{122d}", "\x{12f2}\x{1234}\x{121d}\x{1260}\x{122d}" ); @DoWs = map { substr($_,0,3) } @DoW; @MoYs = map { substr($_,0,3) } @MoY; @AMPM = ( "\x{1295}/\x{1230}", "\x{12F5}/\x{1230}" ); @Dsuf = ("\x{12ed}" x 31); } else { @DoW = ( "ሰንበት", "ሰኑይ", "ሰሉስ", "ረቡዕ", "ሓሙስ", "ዓርቢ", "ቀዳም" ); @MoY = ( "ጥሪ", "ለካቲት", "መጋቢት", "ሚያዝያ", "ግንቦት", "ሰነ", "ሓምለ", "ነሓሰ", "መስከረም", "ጥቅምቲ", "ሕዳር", "ታሕሳስ" ); @DoWs = map { substr($_,0,9) } @DoW; @MoYs = map { substr($_,0,9) } @MoY; @AMPM = ( "ን/ሰ", "ድ/ሰ" ); @Dsuf = ("ይ" x 31); } @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] } 1; TimeDate-2.33/lib/Date/Language/Russian_koi8r.pm0000755000076700000240000000201211310706316020712 0ustar nicolasstaff## ## Russian koi8r ## package Date::Language::Russian_koi8r; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.01"; @DoW = qw( ); @MoY = qw( ); @DoWs = qw( ); #@DoWs = map { substr($_,0,3) } @DoW; @MoYs = map { substr($_,0,3) } @MoY; @AMPM = qw(AM PM); @Dsuf = ('e') x 31; #@Dsuf[11,12,13] = qw( ); #@Dsuf[30,31] = 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_o { sprintf("%2de",$_[0]->[3]) } 1; TimeDate-2.33/lib/Date/Language/Swedish.pm0000644000076700000240000000214211310706316017561 0ustar nicolasstaff## ## Swedish tables ## Contributed by Matthew Musgrove ## Corrected by dempa ## package Date::Language::Swedish; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.01"; @MoY = qw(januari februari mars april maj juni juli augusti september oktober november december); @MoYs = map { substr($_,0,3) } @MoY; @DoW = map($_ . "dagen", qw(sn mn tis ons tors fre lr)); @DoWs = map { substr($_,0,2) } @DoW; # the ordinals are not typically used in modern times @Dsuf = ('a' x 2, 'e' x 29); use Date::Language::English (); @AMPM = @{Date::Language::English::AMPM}; @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_o { sprintf("%2de",$_[0]->[3]) } 1; TimeDate-2.33/lib/Date/Language/Czech.pm0000644000076700000240000000260311150613150017204 0ustar nicolasstaff## ## Czech tables ## ## Contributed by Honza Pazdziora package Date::Language::Czech; 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(leden nor bezen duben kvten erven ervenec srpen z jen listopad prosinec); @MoYs = qw(led nor be dub kv vn ec srp z j lis pro); @MoY2 = @MoY; for (@MoY2) { s!en$!na! or s!ec$!ce! or s!ad$!adu! or s!or$!ora!; } @DoW = qw(nedle pondl ter steda tvrtek ptek sobota); @DoWs = qw(Ne Po t St t P So); @AMPM = qw(dop. odp.); @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 time2str { my $ref = shift; my @a = @_; $a[0] =~ s/(%[do]\.?\s?)%B/$1%Q/; $ref->SUPER::time2str(@a); } sub strftime { my $ref = shift; my @a = @_; $a[0] =~ s/(%[do]\.?\s?)%B/$1%Q/; $ref->SUPER::time2str(@a); } 1; TimeDate-2.33/lib/Date/Language/TigrinyaEthiopian.pm0000644000076700000240000000361211150613150021600 0ustar nicolasstaff## ## Tigrinya-Ethiopian tables ## package Date::Language::TigrinyaEthiopian; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.00"; if ( $] >= 5.006 ) { @DoW = ( "\x{1230}\x{1295}\x{1260}\x{1275}", "\x{1230}\x{1291}\x{12ed}", "\x{1230}\x{1209}\x{1235}", "\x{1228}\x{1261}\x{12d5}", "\x{1213}\x{1219}\x{1235}", "\x{12d3}\x{122d}\x{1262}", "\x{1240}\x{12f3}\x{121d}" ); @MoY = ( "\x{1303}\x{1295}\x{12e9}\x{12c8}\x{122a}", "\x{134c}\x{1265}\x{1229}\x{12c8}\x{122a}", "\x{121b}\x{122d}\x{127d}", "\x{12a4}\x{1355}\x{1228}\x{120d}", "\x{121c}\x{12ed}", "\x{1301}\x{1295}", "\x{1301}\x{120b}\x{12ed}", "\x{12a6}\x{1308}\x{1235}\x{1275}", "\x{1234}\x{1355}\x{1274}\x{121d}\x{1260}\x{122d}", "\x{12a6}\x{12ad}\x{1270}\x{12cd}\x{1260}\x{122d}", "\x{1296}\x{126c}\x{121d}\x{1260}\x{122d}", "\x{12f2}\x{1234}\x{121d}\x{1260}\x{122d}" ); @DoWs = map { substr($_,0,3) } @DoW; @MoYs = map { substr($_,0,3) } @MoY; @AMPM = ( "\x{1295}/\x{1230}", "\x{12F5}/\x{1230}" ); @Dsuf = ("\x{12ed}" x 31); } else { @DoW = ( "ሰንበት", "ሰኑይ", "ሰሉስ", "ረቡዕ", "ሓሙስ", "ዓርቢ", "ቀዳም" ); @MoY = ( "ጃንዩወሪ", "ፌብሩወሪ", "ማርች", "ኤፕረል", "ሜይ", "ጁን", "ጁላይ", "ኦገስት", "ሴፕቴምበር", "ኦክተውበር", "ኖቬምበር", "ዲሴምበር" ); @DoWs = map { substr($_,0,9) } @DoW; @MoYs = map { substr($_,0,9) } @MoY; @AMPM = ( "ን/ሰ", "ድ/ሰ" ); @Dsuf = ("ይ" x 31); } @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] } 1; TimeDate-2.33/lib/Date/Language/Chinese_GB.pm0000644000076700000240000000162611150613150020102 0ustar nicolasstaff## ## English tables ## package Date::Language::Chinese_GB; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.01"; @DoW = qw( һ ڶ ); @MoY = qw(һ ʮ ʮһ ʮ); @DoWs = map { $_ } @DoW; @MoYs = map { $_ } @MoY; @AMPM = qw( ); @Dsuf = (qw( )) x 3; @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_o { sprintf("%2d%s",$_[0]->[3],"") } 1; TimeDate-2.33/lib/Date/Language/Amharic.pm0000644000076700000240000000360711150613150017521 0ustar nicolasstaff## ## Amharic tables ## package Date::Language::Amharic; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.00"; if ( $] >= 5.006 ) { @DoW = ( "\x{12a5}\x{1211}\x{12f5}", "\x{1230}\x{129e}", "\x{121b}\x{12ad}\x{1230}\x{129e}", "\x{1228}\x{1261}\x{12d5}", "\x{1210}\x{1219}\x{1235}", "\x{12d3}\x{122d}\x{1265}", "\x{1245}\x{12f3}\x{121c}" ); @MoY = ( "\x{1303}\x{1295}\x{12e9}\x{12c8}\x{122a}", "\x{134c}\x{1265}\x{1229}\x{12c8}\x{122a}", "\x{121b}\x{122d}\x{127d}", "\x{12a4}\x{1355}\x{1228}\x{120d}", "\x{121c}\x{12ed}", "\x{1301}\x{1295}", "\x{1301}\x{120b}\x{12ed}", "\x{12a6}\x{1308}\x{1235}\x{1275}", "\x{1234}\x{1355}\x{1274}\x{121d}\x{1260}\x{122d}", "\x{12a6}\x{12ad}\x{1270}\x{12cd}\x{1260}\x{122d}", "\x{1296}\x{126c}\x{121d}\x{1260}\x{122d}", "\x{12f2}\x{1234}\x{121d}\x{1260}\x{122d}" ); @DoWs = map { substr($_,0,3) } @DoW; @MoYs = map { substr($_,0,3) } @MoY; @AMPM = ( "\x{1320}\x{12cb}\x{1275}", "\x{12a8}\x{1230}\x{12d3}\x{1275}" ); @Dsuf = ("\x{129b}" x 31); } else { @DoW = ( "እሑድ", "ሰኞ", "ማክሰኞ", "ረቡዕ", "ሐሙስ", "ዓርብ", "ቅዳሜ" ); @MoY = ( "ጃንዩወሪ", "ፌብሩወሪ", "ማርች", "ኤፕረል", "ሜይ", "ጁን", "ጁላይ", "ኦገስት", "ሴፕቴምበር", "ኦክተውበር", "ኖቬምበር", "ዲሴምበር" ); @DoWs = map { substr($_,0,9) } @DoW; @MoYs = map { substr($_,0,9) } @MoY; @AMPM = ( "ጠዋት", "ከሰዓት" ); @Dsuf = ("ኛ" x 31); } @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] } 1; TimeDate-2.33/lib/Date/Language/Russian.pm0000644000076700000240000000255011310706316017602 0ustar nicolasstaff## ## Russian tables ## ## Contributed by Danil Pismenny 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; TimeDate-2.33/lib/Date/Language/Finnish.pm0000644000076700000240000000232711150613150017551 0ustar nicolasstaff## ## Finnish tables ## Contributed by Matthew Musgrove ## Corrected by roke ## package Date::Language::Finnish; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.01"; # In Finnish, the names of the months and days are only capitalized at the beginning of sentences. @MoY = map($_ . "kuu", qw(tammi helmi maalis huhti touko kes hein elo syys loka marras joulu)); @DoW = qw(sunnuntai maanantai tiistai keskiviikko torstai perjantai lauantai); # it is not customary to use abbreviated names of months or days # per Graham's suggestion: @MoYs = @MoY; @DoWs = @DoW; # the short form of ordinals @Dsuf = ('.') x 31; # doesn't look like this is normally used... @AMPM = qw(ap ip); @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_o { sprintf("%2de",$_[0]->[3]) } 1;TimeDate-2.33/lib/Date/Language/French.pm0000644000076700000240000000177413661013703017374 0ustar nicolasstaff## ## French tables, contributed by Emmanuel Bataille (bem@residents.frmug.org) ## package Date::Language::French; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.04"; @DoW = qw(dimanche lundi mardi mercredi jeudi vendredi samedi); @MoY = qw(janvier fvrier mars avril mai juin juillet aot septembre octobre novembre dcembre); @DoWs = map { substr($_,0,3) } @DoW; @MoYs = map { substr($_,0,3) } @MoY; $MoYs[6] = 'jul'; @AMPM = qw(AM PM); @Dsuf = ((qw(er e e e e e e e e e)) x 3, 'er'); @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_o { $_[0]->[3] } 1; TimeDate-2.33/lib/Date/Language/Somali.pm0000644000076700000240000000220311150613150017370 0ustar nicolasstaff## ## Somali tables ## package Date::Language::Somali; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "0.99"; @DoW = qw(Axad Isniin Salaaso Arbaco Khamiis Jimco Sabti); @MoY = ( "Bisha Koobaad", "Bisha Labaad", "Bisha Saddexaad", "Bisha Afraad", "Bisha Shanaad", "Bisha Lixaad", "Bisha Todobaad", "Bisha Sideedaad", "Bisha Sagaalaad", "Bisha Tobnaad", "Bisha Kow iyo Tobnaad", "Bisha Laba iyo Tobnaad" ); @DoWs = map { substr($_,0,3) } @DoW; @MoYs = ( "Kob", "Lab", "Sad", "Afr", "Sha", "Lix", "Tod", "Sid", "Sag", "Tob", "KIT", "LIT" ); @AMPM = qw(SN GN); @Dsuf = (qw(th st nd rd th th th th th th)) x 3; @Dsuf[11,12,13] = qw(th th th); @Dsuf[30,31] = qw(th st); @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] } 1; TimeDate-2.33/lib/Date/Language/Afar.pm0000644000076700000240000000201011150613150017011 0ustar nicolasstaff## ## Afar tables ## package Date::Language::Afar; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "0.99"; @DoW = qw(Acaada Etleeni Talaata Arbaqa Kamiisi Gumqata Sabti); @MoY = ( "Qunxa Garablu", "Kudo", "Ciggilta Kudo", "Agda Baxis", "Caxah Alsa", "Qasa Dirri", "Qado Dirri", "Liiqen", "Waysu", "Diteli", "Ximoli", "Kaxxa Garablu" ); @DoWs = map { substr($_,0,3) } @DoW; @MoYs = map { substr($_,0,3) } @MoY; @AMPM = qw(saaku carra); @Dsuf = (qw(th st nd rd th th th th th th)) x 3; @Dsuf[11,12,13] = qw(th th th); @Dsuf[30,31] = qw(th st); @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] } 1; TimeDate-2.33/lib/Date/Language/Norwegian.pm0000644000076700000240000000175411310706316020114 0ustar nicolasstaff## ## Norwegian tables ## package Date::Language::Norwegian; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.01"; @MoY = qw(Januar Februar Mars April Mai Juni Juli August September Oktober November Desember); @MoYs = qw(Jan Feb Mar Apr Mai Jun Jul Aug Sep Okt Nov Des); @DoW = qw(Sndag Mandag Tirsdag Onsdag Torsdag Fredag Lrdag Sndag); @DoWs = qw(Sn Man Tir Ons Tor Fre Lr Sn); use Date::Language::English (); @AMPM = @{Date::Language::English::AMPM}; @Dsuf = @{Date::Language::English::Dsuf}; @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] } 1; TimeDate-2.33/lib/Date/Language/Romanian.pm0000644000076700000240000000157411310706316017727 0ustar nicolasstaff## ## Italian tables ## package Date::Language::Romanian; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.01"; @MoY = qw(ianuarie februarie martie aprilie mai iunie iulie august septembrie octombrie noembrie decembrie); @DoW = qw(duminica luni marti miercuri joi vineri sambata); @DoWs = map { substr($_,0,3) } @DoW; @MoYs = map { substr($_,0,3) } @MoY; @AMPM = qw(AM PM); @Dsuf = ('') x 31; @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] } 1; TimeDate-2.33/lib/Date/Language/Dutch.pm0000644000076700000240000000207611150613150017223 0ustar nicolasstaff## ## Dutch tables ## Contributed by Johannes la Poutre ## package Date::Language::Dutch; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.02"; @MoY = qw(januari februari maart april mei juni juli augustus september oktober november december); @MoYs = map(substr($_, 0, 3), @MoY); $MoYs[2] = 'mrt'; # mrt is more common (Frank Maas) @DoW = map($_ . "dag", qw(zon maan dins woens donder vrij zater)); @DoWs = map(substr($_, 0, 2), @DoW); # these aren't normally used... @AMPM = qw(VM NM); @Dsuf = ('e') x 31; @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_o { sprintf("%2de",$_[0]->[3]) } 1; TimeDate-2.33/lib/Date/Language/English.pm0000644000076700000240000000171511150613150017544 0ustar nicolasstaff## ## English tables ## package Date::Language::English; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.01"; @DoW = qw(Sunday Monday Tuesday Wednesday Thursday Friday Saturday); @MoY = qw(January February March April May June July August September October November December); @DoWs = map { substr($_,0,3) } @DoW; @MoYs = map { substr($_,0,3) } @MoY; @AMPM = qw(AM PM); @Dsuf = (qw(th st nd rd th th th th th th)) x 3; @Dsuf[11,12,13] = qw(th th th); @Dsuf[30,31] = qw(th st); @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] } 1; TimeDate-2.33/lib/Date/Language/German.pm0000644000076700000240000000202011310706316017357 0ustar nicolasstaff## ## German tables ## package Date::Language::German; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.02"; @MoY = qw(Januar Februar Mrz April Mai Juni Juli August September Oktober November Dezember); @MoYs = qw(Jan Feb Mr Apr Mai Jun Jul Aug Sep Okt Nov Dez); @DoW = qw(Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag); @DoWs = qw(Son Mon Die Mit Don Fre Sam); use Date::Language::English (); @AMPM = @{Date::Language::English::AMPM}; @Dsuf = @{Date::Language::English::Dsuf}; @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_o { sprintf("%2d.",$_[0]->[3]) } 1; TimeDate-2.33/lib/Date/Language/Brazilian.pm0000644000076700000240000000170611150613150020066 0ustar nicolasstaff## ## Brazilian tables, contributed by Christian Tosta (tosta@cce.ufmg.br) ## package Date::Language::Brazilian; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.01"; @DoW = qw(Domingo Segunda Tera Quarta Quinta Sexta Sbado); @MoY = qw(Janeiro Fevereiro Maro Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro); @DoWs = map { substr($_,0,3) } @DoW; @MoYs = map { substr($_,0,3) } @MoY; @AMPM = qw(AM PM); @Dsuf = (qw(mo ro do ro to to to mo vo no)) x 3; @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] } 1; TimeDate-2.33/lib/Date/Language/Austrian.pm0000644000076700000240000000174211310706316017746 0ustar nicolasstaff## ## Austrian tables ## package Date::Language::Austrian; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.01"; @MoY = qw(Jnner Feber Mrz April Mai Juni Juli August September Oktober November Dezember); @MoYs = qw(Jn Feb Mr Apr Mai Jun Jul Aug Sep Oct Nov Dez); @DoW = qw(Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag); @DoWs = qw(Son Mon Die Mit Don Fre Sam); use Date::Language::English (); @AMPM = @{Date::Language::English::AMPM}; @Dsuf = @{Date::Language::English::Dsuf}; @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] } 1; TimeDate-2.33/lib/Date/Language/Tigrinya.pm0000644000076700000240000000263211310706316017745 0ustar nicolasstaff## ## Tigrinya tables ## package Date::Language::Tigrinya; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.00"; @DoW = ( "\x{1230}\x{1295}\x{1260}\x{1275}", "\x{1230}\x{1291}\x{12ed}", "\x{1230}\x{1209}\x{1235}", "\x{1228}\x{1261}\x{12d5}", "\x{1213}\x{1219}\x{1235}", "\x{12d3}\x{122d}\x{1262}", "\x{1240}\x{12f3}\x{121d}" ); @MoY = ( "\x{1303}\x{1295}\x{12e9}\x{12c8}\x{122a}", "\x{134c}\x{1265}\x{1229}\x{12c8}\x{122a}", "\x{121b}\x{122d}\x{127d}", "\x{12a4}\x{1355}\x{1228}\x{120d}", "\x{121c}\x{12ed}", "\x{1301}\x{1295}", "\x{1301}\x{120b}\x{12ed}", "\x{12a6}\x{1308}\x{1235}\x{1275}", "\x{1234}\x{1355}\x{1274}\x{121d}\x{1260}\x{122d}", "\x{12a6}\x{12ad}\x{1270}\x{12cd}\x{1260}\x{122d}", "\x{1296}\x{126c}\x{121d}\x{1260}\x{122d}", "\x{12f2}\x{1234}\x{121d}\x{1260}\x{122d}" ); @DoWs = map { substr($_,0,3) } @DoW; @MoYs = map { substr($_,0,3) } @MoY; @AMPM = ( "\x{1295}/\x{1230}", "\x{12F5}/\x{1230}" ); @Dsuf = ("\x{12ed}" x 31); @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] } 1; TimeDate-2.33/lib/Date/Language/Italian.pm0000644000076700000240000000175611310706316017546 0ustar nicolasstaff## ## Italian tables ## package Date::Language::Italian; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.01"; @MoY = qw(Gennaio Febbraio Marzo Aprile Maggio Giugno Luglio Agosto Settembre Ottobre Novembre Dicembre); @MoYs = qw(Gen Feb Mar Apr Mag Giu Lug Ago Set Ott Nov Dic); @DoW = qw(Domenica Lunedi Martedi Mercoledi Giovedi Venerdi Sabato); @DoWs = qw(Dom Lun Mar Mer Gio Ven Sab); use Date::Language::English (); @AMPM = @{Date::Language::English::AMPM}; @Dsuf = @{Date::Language::English::Dsuf}; @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] } 1; TimeDate-2.33/lib/Date/Language/Oromo.pm0000644000076700000240000000174711150613150017253 0ustar nicolasstaff## ## Oromo tables ## package Date::Language::Oromo; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "0.99"; @DoW = qw(Dilbata Wiixata Qibxata Roobii Kamiisa Jimaata Sanbata); @MoY = qw(Amajjii Guraandhala Bitooteessa Elba Caamsa Waxabajjii Adooleessa Hagayya Fuulbana Onkololeessa Sadaasa Muddee); @DoWs = map { substr($_,0,3) } @DoW; @MoYs = map { substr($_,0,3) } @MoY; @AMPM = qw(WD WB); @Dsuf = (qw(th st nd rd th th th th th th)) x 3; @Dsuf[11,12,13] = qw(th th th); @Dsuf[30,31] = qw(th st); @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] } 1; TimeDate-2.33/lib/Date/Language/Sidama.pm0000644000076700000240000000172411150613150017351 0ustar nicolasstaff## ## Sidama tables ## package Date::Language::Sidama; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "0.99"; @DoW = qw(Sambata Sanyo Maakisanyo Roowe Hamuse Arbe Qidaame); @MoY = qw(January February March April May June July August September October November December); @DoWs = map { substr($_,0,3) } @DoW; @MoYs = map { substr($_,0,3) } @MoY; @AMPM = qw(soodo hawwaro); @Dsuf = (qw(th st nd rd th th th th th th)) x 3; @Dsuf[11,12,13] = qw(th th th); @Dsuf[30,31] = qw(th st); @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] } 1; TimeDate-2.33/lib/Date/Language/Danish.pm0000644000076700000240000000201311310706316017356 0ustar nicolasstaff## ## Danish tables ## package Date::Language::Danish; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.01"; @MoY = qw(Januar Februar Marts April Maj Juni Juli August September Oktober November December); @MoYs = qw(Jan Feb Mar Apr Maj Jun Jul Aug Sep Okt Nov Dec); @DoW = qw(Sndag Mandag Tirsdag Onsdag Torsdag Fredag Lrdag Sndag); @DoWs = qw(Sn Man Tir Ons Tor Fre Lr Sn); use Date::Language::English (); @AMPM = @{Date::Language::English::AMPM}; @Dsuf = @{Date::Language::English::Dsuf}; @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] } 1; TimeDate-2.33/lib/Date/Language/Bulgarian.pm0000644000076700000240000000500713661013703020064 0ustar nicolasstaff## ## Bulgarian tables contributed by Krasimir Berov ## package Date::Language::Bulgarian; use strict; use warnings; use utf8; use base qw(Date::Language); our (@DoW, @DoWs, @MoY, @MoYs, @AMPM, @Dsuf, %MoY, %DoW, $VERSION); $VERSION = "1.01"; @DoW = qw(неделя понеделник вторник сряда четвъртък петък събота); @MoY = qw(януари февруари март април май юни юли август септември октомври ноември декември); @DoWs = qw(нд пн вт ср чт пт сб); @MoYs = map { substr($_,0,3) } @MoY; @AMPM = qw(AM PM); @Dsuf = (qw(ти ви ри ти ти ти ти ми ми ти)) x 3; @Dsuf[11,12,13] = qw(ти ти ти); @Dsuf[30,31] = 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_o { ($_[0]->[3]<10?' ':'').$_[0]->[3].$Dsuf[$_[0]->[3]] } 1; __END__ =encoding utf8 =head1 NAME Date::Language::Bulgarian - localization for Date::Format =head1 DESCRIPTION This is Bulgarian localization for Date::Format. It is important to note that this module source code is in utf8. All strings which it outputs are in utf8, so it is safe to use it currently only with English. You are left alone to try and convert the output when using different Date::Language::* in the same application. This should be addresed in the future. =head1 SYNOPSIS use strict; use warnings; use Date::Language; local $\=$/; my $template ='%a %b %e %T %Y (%Y-%m-%d %H:%M:%S)'; my $time=1290883821; #or just use time(); my @lt = localtime($time); my %languages = qw(English GMT German EEST Bulgarian EET); binmode(select,':utf8'); foreach my $l(keys %languages){ my $lang = Date::Language->new($l); my $zone = $languages{$l}; print $/. "$l $zone"; print $lang->time2str($template, $time); print $lang->time2str($template, $time, $zone); print $lang->strftime($template, \@lt); } =head1 AUTHOR Krasimir Berov (berov@cpan.org) =head1 COPYRIGHT Copyright (c) 2010 Krasimir Berov. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut TimeDate-2.33/lib/Date/Language/Chinese.pm0000644000076700000240000000172111310706316017533 0ustar nicolasstaff## ## English tables ## package Date::Language::Chinese; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.00"; @DoW = qw(星期日 星期一 星期二 星期三 星期四 星期五 星期六); @MoY = qw(一月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 十二月); @DoWs = map { $_ } @DoW; @MoYs = map { $_ } @MoY; @AMPM = qw(上午 下午); @Dsuf = (qw(日 日 日 日 日 日 日 日 日 日)) x 3; @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_o { sprintf("%2d%s",$_[0]->[3],"日") } 1; TimeDate-2.33/lib/Date/Language/Russian_cp1251.pm0000755000076700000240000000201411310706316020573 0ustar nicolasstaff## ## Russian cp1251 ## package Date::Language::Russian_cp1251; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "1.01"; @DoW = qw( ); @MoY = qw( ); @DoWs = qw( ); #@DoWs = map { substr($_,0,3) } @DoW; @MoYs = map { substr($_,0,3) } @MoY; @AMPM = qw(AM PM); @Dsuf = ('e') x 31; #@Dsuf[11,12,13] = qw( ); #@Dsuf[30,31] = 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_o { sprintf("%2de",$_[0]->[3]) } 1; TimeDate-2.33/lib/Date/Language/Gedeo.pm0000644000076700000240000000205011150613150017167 0ustar nicolasstaff## ## Gedeo tables ## package Date::Language::Gedeo; use Date::Language (); use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION); @ISA = qw(Date::Language); $VERSION = "0.99"; @DoW = qw( Sanbbattaa Sanno Masano Roobe Hamusse Arbe Qiddamme); @MoY = ( "Oritto", "Birre'a", "Onkkollessa", "Saddasa", "Arrasa", "Qammo", "Ella", "Waacibajje", "Canissa", "Addolessa", "Bittitotessa", "Hegeya" ); @DoWs = map { substr($_,0,3) } @DoW; $DoWs[0] = "Snb"; $DoWs[1] = "Sno"; @MoYs = map { substr($_,0,3) } @MoY; @AMPM = qw(gorsa warreti-udumma); @Dsuf = (qw(th st nd rd th th th th th th)) x 3; @Dsuf[11,12,13] = qw(th th th); @Dsuf[30,31] = qw(th st); @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] } 1; TimeDate-2.33/lib/Date/Format.pm0000644000076700000240000002266011310706316015667 0ustar nicolasstaff# Copyright (c) 1995-2009 Graham Barr. This program is free # software; you can redistribute it and/or modify it under the same terms # as Perl itself. package Date::Format; use strict; use vars qw(@EXPORT @ISA $VERSION); require Exporter; $VERSION = "2.24"; @ISA = qw(Exporter); @EXPORT = qw(time2str strftime ctime asctime); sub time2str ($;$$) { Date::Format::Generic->time2str(@_); } sub strftime ($\@;$) { Date::Format::Generic->strftime(@_); } sub ctime ($;$) { my($t,$tz) = @_; Date::Format::Generic->time2str("%a %b %e %T %Y\n", $t, $tz); } sub asctime (\@;$) { my($t,$tz) = @_; Date::Format::Generic->strftime("%a %b %e %T %Y\n", $t, $tz); } ## ## ## package Date::Format::Generic; use vars qw($epoch $tzname); use Time::Zone; use Time::Local; sub ctime { my($me,$t,$tz) = @_; $me->time2str("%a %b %e %T %Y\n", $t, $tz); } sub asctime { my($me,$t,$tz) = @_; $me->strftime("%a %b %e %T %Y\n", $t, $tz); } sub _subs { my $fn; $_[1] =~ s/ %(O?[%a-zA-Z]) / ($_[0]->can("format_$1") || sub { $1 })->($_[0]); /sgeox; $_[1]; } sub strftime { my($pkg,$fmt,$time); ($pkg,$fmt,$time,$tzname) = @_; my $me = ref($pkg) ? $pkg : bless []; if(defined $tzname) { $tzname = uc $tzname; $tzname = sprintf("%+05d",$tzname) unless($tzname =~ /\D/); $epoch = timegm(@{$time}[0..5]); @$me = gmtime($epoch + tz_offset($tzname) - tz_offset()); } else { @$me = @$time; undef $epoch; } _subs($me,$fmt); } sub time2str { my($pkg,$fmt,$time); ($pkg,$fmt,$time,$tzname) = @_; my $me = ref($pkg) ? $pkg : bless [], $pkg; $epoch = $time; if(defined $tzname) { $tzname = uc $tzname; $tzname = sprintf("%+05d",$tzname) unless($tzname =~ /\D/); $time += tz_offset($tzname); @$me = gmtime($time); } else { @$me = localtime($time); } $me->[9] = $time; _subs($me,$fmt); } my(@DoW,@MoY,@DoWs,@MoYs,@AMPM,%format,@Dsuf); @DoW = qw(Sunday Monday Tuesday Wednesday Thursday Friday Saturday); @MoY = qw(January February March April May June July August September October November December); @DoWs = map { substr($_,0,3) } @DoW; @MoYs = map { substr($_,0,3) } @MoY; @AMPM = qw(AM PM); @Dsuf = (qw(th st nd rd th th th th th th)) x 3; @Dsuf[11,12,13] = qw(th th th); @Dsuf[30,31] = qw(th st); %format = ('x' => "%m/%d/%y", 'C' => "%a %b %e %T %Z %Y", 'X' => "%H:%M:%S", ); my @locale; my $locale = "/usr/share/lib/locale/LC_TIME/default"; local *LOCALE; if(open(LOCALE,"$locale")) { chop(@locale = ); close(LOCALE); @MoYs = @locale[0 .. 11]; @MoY = @locale[12 .. 23]; @DoWs = @locale[24 .. 30]; @DoW = @locale[31 .. 37]; @format{"X","x","C"} = @locale[38 .. 40]; @AMPM = @locale[41 .. 42]; } sub wkyr { my($wstart, $wday, $yday) = @_; $wday = ($wday + 7 - $wstart) % 7; return int(($yday - $wday + 13) / 7 - 1); } ## ## these 6 formatting routins need to be *copied* into the language ## specific packages ## my @roman = ('',qw(I II III IV V VI VII VIII IX)); sub roman { my $n = shift; $n =~ s/(\d)$//; my $r = $roman[ $1 ]; if($n =~ s/(\d)$//) { (my $t = $roman[$1]) =~ tr/IVX/XLC/; $r = $t . $r; } if($n =~ s/(\d)$//) { (my $t = $roman[$1]) =~ tr/IVX/CDM/; $r = $t . $r; } if($n =~ s/(\d)$//) { (my $t = $roman[$1]) =~ tr/IVX/M../; $r = $t . $r; } $r; } 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_P { lc($_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0]) } sub format_d { sprintf("%02d",$_[0]->[3]) } sub format_e { sprintf("%2d",$_[0]->[3]) } sub format_H { sprintf("%02d",$_[0]->[2]) } sub format_I { sprintf("%02d",$_[0]->[2] % 12 || 12)} sub format_j { sprintf("%03d",$_[0]->[7] + 1) } sub format_k { sprintf("%2d",$_[0]->[2]) } sub format_l { sprintf("%2d",$_[0]->[2] % 12 || 12)} sub format_L { $_[0]->[4] + 1 } sub format_m { sprintf("%02d",$_[0]->[4] + 1) } sub format_M { sprintf("%02d",$_[0]->[1]) } sub format_q { sprintf("%01d",int($_[0]->[4] / 3) + 1) } sub format_s { $epoch = timelocal(@{$_[0]}[0..5]) unless defined $epoch; sprintf("%d",$epoch) } sub format_S { sprintf("%02d",$_[0]->[0]) } sub format_U { wkyr(0, $_[0]->[6], $_[0]->[7]) } sub format_w { $_[0]->[6] } sub format_W { wkyr(1, $_[0]->[6], $_[0]->[7]) } sub format_y { sprintf("%02d",$_[0]->[5] % 100) } sub format_Y { sprintf("%04d",$_[0]->[5] + 1900) } sub format_Z { my $o = tz_local_offset(timelocal(@{$_[0]}[0..5])); defined $tzname ? $tzname : uc tz_name($o, $_[0]->[8]); } sub format_z { my $t = timelocal(@{$_[0]}[0..5]); my $o = defined $tzname ? tz_offset($tzname, $t) : tz_offset(undef,$t); sprintf("%+03d%02d", int($o / 3600), int(abs($o) % 3600) / 60); } sub format_c { &format_x . " " . &format_X } sub format_D { &format_m . "/" . &format_d . "/" . &format_y } sub format_r { &format_I . ":" . &format_M . ":" . &format_S . " " . &format_p } sub format_R { &format_H . ":" . &format_M } sub format_T { &format_H . ":" . &format_M . ":" . &format_S } sub format_t { "\t" } sub format_n { "\n" } sub format_o { sprintf("%2d%s",$_[0]->[3],$Dsuf[$_[0]->[3]]) } sub format_x { my $f = $format{'x'}; _subs($_[0],$f); } sub format_X { my $f = $format{'X'}; _subs($_[0],$f); } sub format_C { my $f = $format{'C'}; _subs($_[0],$f); } sub format_Od { roman(format_d(@_)) } sub format_Oe { roman(format_e(@_)) } sub format_OH { roman(format_H(@_)) } sub format_OI { roman(format_I(@_)) } sub format_Oj { roman(format_j(@_)) } sub format_Ok { roman(format_k(@_)) } sub format_Ol { roman(format_l(@_)) } sub format_Om { roman(format_m(@_)) } sub format_OM { roman(format_M(@_)) } sub format_Oq { roman(format_q(@_)) } sub format_Oy { roman(format_y(@_)) } sub format_OY { roman(format_Y(@_)) } sub format_G { int(($_[0]->[9] - 315993600) / 604800) } 1; __END__ =head1 NAME Date::Format - Date formating subroutines =head1 SYNOPSIS use Date::Format; @lt = localtime(time); print time2str($template, time); print strftime($template, @lt); print time2str($template, time, $zone); print strftime($template, @lt, $zone); print ctime(time); print asctime(@lt); print ctime(time, $zone); print asctime(@lt, $zone); =head1 DESCRIPTION This module provides routines to format dates into ASCII strings. They correspond to the C library routines C and C. =over 4 =item time2str(TEMPLATE, TIME [, ZONE]) C converts C