summaryrefslogtreecommitdiff
path: root/lib/Date/Language/Sidama.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Date/Language/Sidama.pm')
-rw-r--r--lib/Date/Language/Sidama.pm37
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/Date/Language/Sidama.pm b/lib/Date/Language/Sidama.pm
new file mode 100644
index 0000000..bc26d7c
--- /dev/null
+++ b/lib/Date/Language/Sidama.pm
@@ -0,0 +1,37 @@
+##
+## 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;