summaryrefslogtreecommitdiff
path: root/lib/Date/Language/Hungarian.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Date/Language/Hungarian.pm')
-rw-r--r--lib/Date/Language/Hungarian.pm88
1 files changed, 88 insertions, 0 deletions
diff --git a/lib/Date/Language/Hungarian.pm b/lib/Date/Language/Hungarian.pm
new file mode 100644
index 0000000..d9c838d
--- /dev/null
+++ b/lib/Date/Language/Hungarian.pm
@@ -0,0 +1,88 @@
+##
+## 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<Date::Format>.
+
+=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(Vasárnap Hétfő Kedd Szerda Csütörtök Péntek Szombat);
+@MoY = qw(Január Február Március Április Május Június
+ Július Augusztus Szeptember Október 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;