hi Martin,
Moment: Ich meinte nicht den Julianischen Kalender, sondern das Julianische Datum, also die fortlaufende Tageszählung.
Auf jeden Fall danke für den Tipp, das kommt noch hinein in mein struct:
int diff_julian_gregor;
Wozu?
Done :-)
Hierzu (siehe die letzten 3 Zeilen):
d:>xdate
Samstag, 5. April 2008 Anno Domini
nach dem Gregorianischen Kalender
Kurzdatum ························ 05.04.2008
Kalenderwoche ···················· 14.2008
Anzahl der Kalenderwochen ········ 52
Schaltjahr ······················· Ja
Tage seit Jahresbeginn ··········· 96
Tage bis Jahresende ·············· 270
Tage des ganzen Jahres ··········· 366
Sommerzeit ······················· Ja
Beginn der Sommerzeit ············ 30.03.2008
Ende der Sommerzeit ·············· 26.10.2008
Julianischer Tag ················· 2454562
Julianische Zaehlung ············· 2454549
Korrektur zum Julianischem Datum · 13 Tage
Julianisches Datum ··············· 23.03.2008
Options: d:/_c/exe/fertig/xdate.exe [Tag] [Monat] [±Jahr]
Wie ich schon einmal schrieb, der Unterschied zw. Gregorianischer Zählung und Julianischer Zählung beträgt derzeit 13 Tage.
Die fortlaufende Tageszählung geht vom 1.1.4713 BC bis dato AD, wir haben also heute den Tag mit der laufenden Nr. 2454562.
Es ist evntl. verwirrend, dass nach Julianischer Zählung diese Zahl heute um 13 verringert ist, aber das ist eine Frage des Standpunktes zur Gregorianischen Kalenderreform vom 4.10 zum 15.10.1582: der aus dem Jul. Kalender geborene Greg. Kalender wurde um 10 Tage nach vorne gesetzt, somit ist aus der Sicht des Greg. Kal. der Jul. Kalender um 10 Tage zurückgeblieben.
Der Betrag der Greg. Kalender-Korrektur:
9 Tage waren es vom 1.3.1400 bis 1.3.1500, danach 10 Tage bis 1.3.1700.
Ab 1.3.1700 waren es 11 Tage bis zum 1.3.1800 und ab dem 1.3.1800 waren es 12 Tage bis zum 1.3.1900.
Ab dem 1.3.2100 beträgt die Korrektur 14 Tage, aber wer weiß, ob mich das dann noch interessiert...
Btw. c, mein struct tagx{} sieht jetzt ungefär so aus wie es die Ausgabe von xdate braucht, siehe oben. In der main() erstelle ich eine Kopie des Prototypes und einen Pointer. Pointer und Datum werden an die Funktion übergeben, welche das struct mit Werten belebt. c Is scho geil ;-)
Viele Grüße,
Hotte
D:\_c\exe>xdate 4 10 1582
Donnerstag, 4. Oktober 1582 Anno Domini
nach dem Julianischen Kalender
Kurzdatum ························ 04.10.1582
Kalenderwoche ···················· 40.1582
Anzahl der Kalenderwochen ········ 52
Schaltjahr ······················· Nein
Tage seit Jahresbeginn ··········· 277
Tage bis Jahresende ·············· 78
Tage des ganzen Jahres ··········· 355
Sommerzeit ······················· Ja
Beginn der Sommerzeit ············ 25.03.1582
Ende der Sommerzeit ·············· 31.10.1582
Julianischer Tag ················· 2299160
Julianische Zaehlung ············· 2299160
Korrektur zum Julianischem Datum · 0 Tage
Julianisches Datum ··············· 04.10.1582
Options: d:/_c/exe/fertig/xdate.exe [Tag] [Monat] [±Jahr]
D:\_c\exe>xdate 15 10 1582
Freitag, 15. Oktober 1582 Anno Domini
nach dem Gregorianischen Kalender
Kurzdatum ························ 15.10.1582
Kalenderwoche ···················· 40.1582
Anzahl der Kalenderwochen ········ 52
Schaltjahr ······················· Nein
Tage seit Jahresbeginn ··········· 278
Tage bis Jahresende ·············· 77
Tage des ganzen Jahres ··········· 355
Sommerzeit ······················· Ja
Beginn der Sommerzeit ············ 25.03.1582
Ende der Sommerzeit ·············· 31.10.1582
Julianischer Tag ················· 2299161
Julianische Zaehlung ············· 2299151
Korrektur zum Julianischem Datum · 10 Tage
Julianisches Datum ··············· 25.09.1582
Options: d:/_c/exe/fertig/xdate.exe [Tag] [Monat] [±Jahr]