Markus (and Fabian):
Here is another, much larger patch for the file SMW_DV_Time.php. This
patch implements support for the Julian calendar, as well as the
Gregorian, and also ensures that the internally-stored Julian Day will
in fact conform to astronomical convention. The createJD() now takes the
parameter $model, which gives it an instruction as to which set of
calculations it ought to apply. JD2Date() selects either the Julian or
the Gregorian date, depending on whether the Julian Day is earlier than,
or the same as or later than, the Julian Day for October 15, 1582, the
day on which Pope Gregory IX proclaimed his new modification to the
calendar originally established by Gaius Julius Caesar Dictator.
With this new patch, all dates will print out in Browse Properties, or
the Factbox, according to the proper calendar, either Julian or
Gregorian. The caption will remain the same as the annotated value.
Dates between October 5-14 inclusive in the year 1582 will calculate to
the proper Julian date and print out accordingly; hence they will appear
as September 25 through October 4 inclusive.
Old Style support is my next project. Again, that requires adjusting
years of dates between January 1 and March 25, and calculating a JD from
Julian calendar rules, while back-converting to the Gregorian calendar.
After that will come Hebrew calendar support. That will probably be the
most difficult task, and the riskiest, primarily on account of the
auxiliary functions that the algorithms require. Once again, I commend
you for developing an algorithm for Gregorian calendar conversion and
back-conversion that does /not/ require auxiliary function calls. I
needed to modify it only slightly to normalize the calculated JD to noon
UTC. I didn't even need to specify a Gregorian epoch (that is, 1 January
1 AD). But the Hebrew calendar will not only require auxiliary functions
but will also be /iterative/, especially for back-conversion. I will
also need to decide what model to use for the XSD value.