|
NAMEDate::Roman - Perl OO extension for handling roman style dates SYNOPSISuse Date::Roman; $caesar_death = Date::Roman->new(roman => 'id 3 702'); print $caesar_death->ical(),"\n"; #prints -520315 DESCRIPTIONThis module defines a class for handling Roman dates as defined by Julius Caesar in 45 BC. METHODSThe following methods are defined for "Date::Roman" objects:
TODO
DATE FORMATSDates can be specified by a string in one of two formats: roman and ical. The roman format.It is a simplified version of the roman way to write dates (see the section THE ROMAN CALENDAR below). It is defined by the following ABNF specification (see rfc2234): <roman date> = [<prefix><spaces>]<fixed day><spaces><mons><spaces><annus>
<prefix> = 1*2DIGIT ; "1".."4" / "1".."6" / "1".."8" /
; "1".."16" / "1".."17" /
; "1".."18" / "1".."19"
; according to <mons> <fixed day>
; value.
<prefix> /= "b6" ; only for <mons> equal to "3", <fixed day>
; equal to "kal" and <annus> equal to a
; leap year.
<fixed day> = "kal" / "non" / "id"
<mons> = 1*2DIGIT ; "1".."12"
<annus> = 1*DIGIT
<spaces> = 1*WSP
We use the "b6" prefix to indicate the leap day (24th february) introduced in leap tears. As it is stated below in section "The days in the Roman calendar", this was again the 6th day before the Kalendae of March, exatly as the day after. The ical formatThe ical format is a generalization of the format for dates defined in rfc2445. The genralization consists in allowing a year in less than 4 digits and in allowing a prefixed "-" to represents years before 1 BC. More specifically, a ical date string is defined by the following ABNF specification (see rfc2234): <ical date> = <year> <month> <day>
<year> = [<minus>] 1*DIGIT
<month> = 2DIGIT ; "1".."12"
<day> = 2DIGIT ; "1".."28" / "1".."29" /
; "1".."30" / "1".."31" according
; to <month> <year> value
<minus> = %x2d
As it is customary, we use 0 to represent the year 1 BC, -1 to represent the year 2 BC and so on. THE ROMAN CALENDARThe Julian reform, the month lengthJulius Caesar made his famous calendar reform in 45 BC. According to this reform, the year was of 365 days, divided in 12 months: Ianuarius, 31 days; Februaarius, 28 days, Martius, 31 days; Aprilis, 30 days; Maius, 31 days, Iunius, 30 days, Iulius, 31 days; Sextilis 31 days, September, 30 days, October, 31 days; November, 30 days; and December, 31 days. Later, Sextilis became Augustus (to simplify, we used Augustus as name of the 8th month trought the module). The Julian reform, leap yearsTo make up with the fact that the tropical year is a little longer than 365 days, Julius Caesar decreed that one year in 4 should be longer by one day, adding one day to Februarius. Due to a misunderstandig about what "one year in 4" meant, between 45 BC and 9 BC there was a leap year every three years. To make up for the surplus of leap years so introduced, emperor Augustus decreed a 15 years period without leap years, so that the first leap year after 9 BC was 8 AD. Then there was a leap year every 4 years until the Gregorian Reform. This module take into account the Gregorian reform assuming that it took place in 1582 AD. It does not take into account the problems in determining leap years between 45 BC and 8 AD (at least it does not yet, see the section TODO above). The days in the Roman calendarThe Romans didn't number the days sequentially from 1. Instead they had three fixed days in each month:
The others days, where designed counting backward from these fixed days. It should be remarked that, in counting backward, the romans used an inclusive counting. That way, for instance, the 2 Jan was the 4th day before the nones of January (the nones of January being the 5th of January). The day before a fixed day was designed by "pridie", abbreviated as "p.d.". The other days was designed using the formula "ante diem", abbreviated as "a.d.". For instance, the 16th of April was ante diem XVI Kalendas Maias, abbreviated as a.d. Kal. Mai. In leap years, the supplemental day was obtained by counting two times the 6th day before the Kalendae of March. Counting the yearsRomans counted years starting from the mitical foundation of Rome by Romolus on 21st April, 753 BC. Fr instance, year 2002 AD is the year 2755 AUC (ab Urbe condita, after the foundation of the City). What before the Julian reform?Before Julius Caesar introduced the Julian calendar in 709 AUC, the Roman calendar was a mess, and much of our so-called ``knowledge'' about it seems to be little more than guesswork. This module uses the Julian calendar also for dates before the 1 Jan 45 BC (or, more precisely, Kalendas Ianuariis DCCIX AUC). This is the so called 'proleptic Julian calendar' and it is consistent with the historians' habit to do so. AUTHORLeo Cacciari, aka TheHobbit <thehobbit@altern.org> THANKSI would like to thanks people who helped me to get this module right:
COPYRIGHT AND DISCLAIMERThis software is Copyright 2002 by Leo Cacciari. This software is free software; you can redistribute it and/or modify it under the terms of the Perl Artistic License, either as stated in the enclosed LICENSE file or (at your option) as given on the Perl home site: http://www.perl.com/language/misc/Artistic.html Software documentation
BooksAny Latin textbook. WebThe very good Frequently Asked Questions about Calendars by Claus Tondering. You can found it at http://www.tondering.dk/claus/calendar.html See especially section 2.7.
|