view release on metacpan or search on metacpan
This is the first release of `Date::Ethiopic` submitted to CPAN.
The package was originally intended to be a part of `Convert::Ethiopic::Lite`.
but has inflated to the point where maintenance will be easier
in its own package.  The package will be a work in progress for
quite a while.  It is fully functional for basic date conversions
and should work with any version of Perl.
## About This Package
`Date::Ethiopic` offers services for the Ethiopic calendar system that
are language and culturally neutral.  In addition to `Date::ICal` the
class adds methods for obtaining fasting (Tsome), astrological, and
other info unique to the Ethiopic reckoning of time.
The Ethiopic context is always assumed, a Gregorian context can be
specified when an object is instantiated by adding the "calscale"
argument.  See examples/dates.pl for a demonstration.
The package contains additional classes under the `Date::Ethiopic`
name space that are named under locale conventions.  For example,
* Add Hadiyya, Gedeo, Oromo data after reviewing ethiopic calendar usage.
* Add getTsome method which checks if the object day, or args, is a tsome.
* Eventually implement Gurage, Oromo and Sidama calendar systems.
* Add á¾á áááµ detection based on áµáá£á¤.
* Add methods for holidays.  Consider islamic holidays (complicated by
  lunar calendar).
* Complete formatting methods.  Don't forget ethiopic hour difference.
* Fill out documentation.
doc/EritreanHolidays.html view on Meta::CPAN
</tr>
<tr>
  <th>26/12</th>
  <th>á. á¥á¨á³á ááá²</th>
</tr>
</table>
<h3>Legally Recognized Islamic Holidays</h3>
<p align="justify">Holiday dates depend on the Islamic calendar.</p>
<table border="1">
<tr>
  <th>áá°á° áá¢á© ááááµ (ááááµ)</th>
  <th>Birthday of Prophet Mohammed (Maulid)</th>
</tr>
<tr>
  <th>ááµ á£á áá¥á (á¨áá³á)</th>
  <th>Id Al Fetir (Remedan)</th>
</tr>
doc/EthiopianHolidays.html view on Meta::CPAN
  <th>á¨á¢áµá®áµá« á áá áá½ áá</th>
</tr>
<tr>
  <th>20/9</th>
  <th>á°áá á¨áá°áá áµ</th>
</tr>
</table>
<h3>Legally Recognized Islamic Holidays</h3>
<p align="justify">Holiday dates depend on the Islamic calendar.</p>
<table border="1">
<tr>
  <th>á¨áá¢á© ááááµ áá°áµ (ááááµ)</th>
  <th>Birthday of Prophet Mohammed (Maulid)</th>
</tr>
<tr>
  <th>á¢áµ á á áá¥á (á¨áá³á)</th>
  <th>Id Al Fater (Remedan)</th>
</tr>
lib/Date/Ethiopic.pm view on Meta::CPAN
sub mod 
{
	( $_[0] - $_[1] * quotient ( $_[0], $_[1] ) );
}
#
# calscale and toGregorian and are methods I recommend every non-Gregorian
# based ICal package provide to identify itself and to convert the
# calendar system it handles into a normalized form.
#
sub calscale
{
	"ethiopic";
}
sub toGregorian
{
my $self = shift;
lib/Date/Ethiopic.pm view on Meta::CPAN
 #
 $ethio = new Date::Ethiopic ( ical => '20030308', calscale => 'gregorian' );
 #
 #  instantiate with a Date::ICal object, assumed to be in Gregorian
 #
 my $grego = new Date::ICal ( ical => '20030308' );
 $ethio = new Date::Ethiopic ( $grego );
 #
 #  get a Date::ICal object in the Gregorian calendar system
 #
 $grego = $ethio->toGregorian;  
=head1 DESCRIPTION
The Date::Ethiopic module provides methods for accessing date information
in the Ethiopic calendar system.  The module will also convert dates to
and from the Gregorian system.
=head2 Limitations
In the Gregorian system the rule for adding a 29th day to February during
leap year follows as per;  February will have a 29th day:
(((((every 4 years) except every 100 years) except every 400 years) except every 2,000) except (maybe every 16,000 years))
The Ethiopic calendar gets an extra day at the end of the 13th month on leap
year (which occurs the year before Gregorian leap year).
It is not known however if the Ethiopic calendar follows the 2,000 year rule.
If it does NOT follow the 2,000 year rule the consequence would be that the
difference between the two calendar systems will increase by a single day.
Hence if you reckon your birthday in the Ethiopic system, that date in
Gregorian may change in five years.  The algorithm here here assumes that
the Ethiopic system will follow the 2,000 year rule.
This may however become a moot point when we consider:
=head2 The Impending Calamity at the End of Time
Well, it is more of a major reset.  Recent reports from reliable sources
indicate that every
1,000 years the Ethiopic calendar goes thru a major upheaval whereby
the calendar gets resyncronized with either September 1st or possibly
even October 1st.  Accordingly Nehasse would then either end on the 25th
day or Pagumen would be extend to 25 days.  Noone will know their birthday
any more, Christmas or any other date that ever once had meaning.  Chaos
will indeed rule the world.
Unless everyone gets little calendar converting applets running on their wrist
watches, that would rule.  But before you start coding applets for future
embeded systems, lets get this clarified.  Consider that the Gregorian
calendar system is less than 500 years old, so this couldn't have happend
a 1,000 years ago, perhaps with the Julian calendar.  Since the Ethiopic
calendar is still in sync with the Coptic, the Copts must have gone thru
the same upheaval.
We are following this story closely, stay tuned to these man pages
for updates as they come in.
=head1 CREDITS
=over 4
=item * Calendrical Calculations: L<http://www.calendarists.com/>
=item * Bahra Hasab: L<http://www.hmml.org/events/>
=item * LibEth: L<http://libeth.sourceforge.net/>
=item * Ethiopica: L<http://ethiopica.sourceforge.net/>
=item * Saint Gebriel Ethiopian Orthodox Church of Seattle: L<http://www.st-gebriel.org/>
=item * Aklile Birhan Wold Kirkos, Metsaheit Tibeb, Neged Publishers, Addis Ababa, 1955 (1948 EC).
lib/Date/Ethiopic/ER/byn.pm view on Meta::CPAN
 #
 # Turn transcription off:
 #
 $byn->useTranscription ( 0 );
 print "  Full  Date: ", $byn->full_date, "\n";
=head1 DESCRIPTION
The Date::Ethiopic::ER::byn module provides methods for accessing date information
in the Ethiopic calendar system.  The module will also convert dates to
and from the Gregorian system.
=head1 CREDITS
Yeha: L<http://yeha.sourceforge.net>
=head1 REQUIRES
Date::Ethiopic, which is distributed in the same package with
lib/Date/Ethiopic/ER/gez.pm view on Meta::CPAN
 #
 # Turn transcription off:
 #
 $gez->useTranscription ( 0 );
 print "  Full  Date: ", $gez->full_date, "\n";
=head1 DESCRIPTION
The Date::Ethiopic::ER::gez module provides methods for accessing date information
in the Ethiopic calendar system.  The module will also convert dates to
and from the Gregorian system.
=head1 CREDITS
Yeha: L<http://yeha.sourceforge.net>
=head1 REQUIRES
Date::Ethiopic, which is distributed in the same package with
lib/Date/Ethiopic/ER/ti.pm view on Meta::CPAN
 #
 # Turn transcription off:
 #
 $ti->useTranscription ( 0 );
 print "  Full  Date: ", $ti->full_date, "\n";
=head1 DESCRIPTION
The Date::Ethiopic::ER::ti module provides methods for accessing date information
in the Ethiopic calendar system.  The module will also convert dates to
and from the Gregorian system.
=head1 CREDITS
Yeha: L<http://yeha.sourceforge.net>
=head1 REQUIRES
Date::Ethiopic, which is distributed in the same package with
lib/Date/Ethiopic/ER/tig.pm view on Meta::CPAN
 #
 # Turn transcription off:
 #
 $tig->useTranscription ( 0 );
 print "  Full  Date: ", $tig->full_date, "\n";
=head1 DESCRIPTION
The Date::Ethiopic::ER::tig module provides methods for accessing date information
in the Ethiopic calendar system.  The module will also convert dates to
and from the Gregorian system.
=head1 CREDITS
Yeha: L<http://yeha.sourceforge.net>
=head1 REQUIRES
Date::Ethiopic, which is distributed in the same package with
lib/Date/Ethiopic/ET/am.pm view on Meta::CPAN
 #
 # Turn transcription off:
 #
 $amh->useTranscription ( 0 );
 print "  Full  Date: ", $amh->full_date, "\n";
=head1 DESCRIPTION
The Date::Ethiopic::ET::am module provides methods for accessing date information
in the Ethiopic calendar system.  The module will also convert dates to
and from the Gregorian system.
=head1 CREDITS
Yeha: L<http://yeha.sourceforge.net>
=head1 REQUIRES
Date::Ethiopic, which is distributed in the same package with
lib/Date/Ethiopic/ET/gez.pm view on Meta::CPAN
 #
 # Turn transcription off:
 #
 $gez->useTranscription ( 0 );
 print "  Full  Date: ", $gez->full_date, "\n";
=head1 DESCRIPTION
The Date::Ethiopic::ET::gez module provides methods for accessing date information
in the Ethiopic calendar system.  The module will also convert dates to
and from the Gregorian system.
=head1 CREDITS
Yeha: L<http://yeha.sourceforge.net>
=head1 REQUIRES
Date::Ethiopic, which is distributed in the same package with
lib/Date/Ethiopic/ET/gru.pm view on Meta::CPAN
 #
 # Turn transcription off:
 #
 $gru->useTranscription ( 0 );
 print "  Full  Date: ", $gru->full_date, "\n";
=head1 DESCRIPTION
The Date::Ethiopic::ET::gru module provides methods for accessing date information
in the Ethiopic calendar system.  The module will also convert dates to
and from the Gregorian system.
=head1 CREDITS
Yeha: L<http://yeha.sourceforge.net>
=head1 REQUIRES
Date::Ethiopic, which is distributed in the same package with
lib/Date/Ethiopic/ET/guy.pm view on Meta::CPAN
 #
 # Turn transcription off:
 #
 $guy->useTranscription ( 0 );
 print "  Full  Date: ", $guy->full_date, "\n";
=head1 DESCRIPTION
The Date::Ethiopic::ET::guy module provides methods for accessing date information
in the Ethiopic calendar system.  The module will also convert dates to
and from the Gregorian system.
=head1 CREDITS
Yeha: L<http://yeha.sourceforge.net>
=head1 REQUIRES
Date::Ethiopic, which is distributed in the same package with
lib/Date/Ethiopic/ET/har.pm view on Meta::CPAN
 #
 # Turn transcription off:
 #
 $har->useTranscription ( 0 );
 print "  Full  Date: ", $har->full_date, "\n";
=head1 DESCRIPTION
The Date::Ethiopic::ET::har module provides methods for accessing date information
in the Ethiopic calendar system.  The module will also convert dates to
and from the Gregorian system.
=head1 CREDITS
Yeha: L<http://yeha.sourceforge.net>
=head1 REQUIRES
Date::Ethiopic, which is distributed in the same package with
lib/Date/Ethiopic/ET/qim.pm view on Meta::CPAN
 #
 # Turn transcription off:
 #
 $qim->useTranscription ( 0 );
 print "  Full  Date: ", $qim->full_date, "\n";
=head1 DESCRIPTION
The Date::Ethiopic::ET::qim module provides methods for accessing date information
in the Ethiopic calendar system.  The module will also convert dates to
and from the Gregorian system.
=head1 CREDITS
Yeha: L<http://yeha.sourceforge.net>
=head1 REQUIRES
Date::Ethiopic, which is distributed in the same package with
lib/Date/Ethiopic/ET/ti.pm view on Meta::CPAN
 #
 # Turn transcription off:
 #
 $ti->useTranscription ( 0 );
 print "  Full  Date: ", $ti->full_date, "\n";
=head1 DESCRIPTION
The Date::Ethiopic::ET::ti module provides methods for accessing date information
in the Ethiopic calendar system.  The module will also convert dates to
and from the Gregorian system.
=head1 CREDITS
Yeha: L<http://yeha.sourceforge.net>
=head1 REQUIRES
Date::Ethiopic, which is distributed in the same package with
lib/Date/Ethiopic/ET/zgu.pm view on Meta::CPAN
 #
 # Turn transcription off:
 #
 $zgu->useTranscription ( 0 );
 print "  Full  Date: ", $zgu->full_date, "\n";
=head1 DESCRIPTION
The Date::Ethiopic::ET::zgu module provides methods for accessing date information
in the Ethiopic calendar system.  The module will also convert dates to
and from the Gregorian system.
=head1 CREDITS
Yeha: L<http://yeha.sourceforge.net>
=head1 REQUIRES
Date::Ethiopic, which is distributed in the same package with