[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Re: Change from Gregorian to Julian calendar in Qt 4.2
From:       David Jarvie <lists () astrojar ! org ! uk>
Date:       2006-09-04 15:04:50
Message-ID: 3dd6163ccbf33d6ef8ce4114e606eb09 () webmail ! plus ! net
[Download RAW message or body]

On Monday 4 September 2006 11:43, Thiago Macieira wrote:
> David Jarvie wrote:
> > In the latest Qt 4.2 changes, QDate now uses the Julian calendar instead
> > of the Gregorian for dates before 1582. In some ways, this makes even
> > more of a mess of date handling than before due to the two calendar
> > systems. Now, QDate uses Julian dates pre-1582 - which don't
> > necessarily coincide with historical records since usage of the
> > calendar wasn't properly standardised. It uses Gregorian dates
> > post-1582 - but because most countries didn't adopt the Gregorian
> > calendar until long after 1582, this often doesn't coincide with
> > historical records either until the 20th century. For scientific
> > purposes, the Gregorian calendar is universally used both pre- and
> > post-1582.
> > 
> > The question for KDE is, should the KDateTime class follow QDate in the
> > switch to the Julian calendar (which will happen automatically as
> > things stand since it uses QDateTime internally), or should it be
> > changed to use a different internal representation for date/time values
> > so as to continue to use the Gregorian calendar throughout?
> 
> KDE understands the concept of calendar, so it should use what the 
> calendar specifies. If we're looking at the non-Gregorian, non-Julian 
> calendars, there should be rules for converting the date into Julian 
> Days.

It would be best to minimise the necessity to use non-default calendars. The choice \
of calendar really depends on the likely use of early dates.

> For those that are using the Julian calendar (say, the Russian Orthodox 
> Church -- are they using KDE?), it's also straightforward: conversion 
> from Julian Day to Julian Date is required.
> 
> As for the countries that use the Gregorian calendar, the calendar varies 
> from country to country. There are *very* locale-specific for that and I 
> doubt we have them implemented anywhere. Some countries converted from 
> Julian to Gregorian before others; some went back from Gregorian to 
> Julian (Scotland), some went halfways, then decided to go back and 
> introduced a February 30th (Sweden). This kind of complexity lies surely 
> out of Q/KDateTime. There's only one universally accepted date for the 
> beginning of the Gregorian calendar and it's the one QDate now uses.

If both calendars are going to be used for QDate, I would agree that 1582 is the most \
obvious cutoff.

> What may be argued is if QDate shouldn't use the proleptic Gregorian 
> calendar into the past, like I had originally made it do. I tried to 
> argue this point with the Trolltech developer who made the change, but we 
> ended up concluding that conversion rules are necessary for any date 
> after the first introduction of the Gregorian calendar, but not before. 
> That way, at least before 1582, QDate cannot be wrong WRT historical 
> records.

But unfortunately QDate *can* be wrong for dates before 1582. The date at which the \
year number changed varied from country to country  until 1st January was eventually \
adopted universally. (This happened as late as 1752 in England and Wales.) For \
example, in France the date  the year number changed was Easter, so 2nd February 1500 \
in France would be the same day as 2nd February 1501 in countries which  changed year \
on 25th December. So even if the month and day numbers might be predictable, you \
can't rely on year numbers. The result is  that dates both before and after 1582 need \
to undergo locale conversion, although admittedly it's not quite so complicated with \
the Julian  calendar.

As for using the proleptic Julian calendar, I can't really see the sense in it (apart \
from avoiding the discontinuity between the proleptic  Gregorian and the start of the \
Julian calendar). Wouldn't it be simpler to use the Gregorian calendar (proleptic or \
otherwise) throughout which  would serve well for scientific purposes and require no \
more conversion than the Julian calendar would?

> Also note that QDate no longer accepts year 0: it counts now -3, -2, -1, 
> 1, 2, 3, 4, ...

Which introduces an extra complication for anybody naively adding or subtracting \
years over the (non-existent) year 0 boundary.

Altogether, I'm not convinced about the desirability of the change. But I'd like to \
hear from people who might actually use pre-1582 dates (e.g.  Nicholas Goutte or \
Jason Harris).

--
David Jarvie.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic