Hi Martin,
Programmieren macht Spaß :-)
Full ACK.
Erst recht, wenn man die Zusammenhänge begreift.
Ich hab sogar das mit den Pointern und structs verstanden ;-)
Stück für Stück kommt mein altes, mir seit 1995 angedichtetes Verständnis für c wieder.
Zurück zur Kalenderberechnung: Es ist so, dass mit den richtigen Formeln jeder einzelne Tag von Tag 0 am 1.1. 4712 B.C. bis heute (Julianischer Tag 2454561) eindeutig bestimmbar ist. Da lohnt es sich schonmal ein struct in c zu bauen, meins sieht so aus:
// Prototyp der Struktur für einen eindeutig bestimmten Tag
struct tagx {
int julianday; // Julianischer Tag
int day; // Tag zum Datum
int month; // Monat zum Datum
int year; // Jahr zum Datum
int numweekday; // Wochentag numerisch 1 Montag.. 0 Sonntag
int leapyear; // Schaltjahr 0 oder 1
int weeksyear; // Anzahl der Wochen zum Jahr
int kw; // Kalenderwoche numerisch
int kwyear; // Das Jahr zur Kalenderwoche
char skw[10]; // Kalenderwoche like "14.2008"
char wotag[20]; // "Montag", "Dienstag" usw.
char monat[20]; // "Januar", "Februar" usw.
int elapsed; // Seit Jahresbeginn abgelaufene Tage
int ydays; // Die Anzahl der Tage des Jahres
int restd; // Die Verbleibenden Tage bis zum Jahresende
int sommerzeit; // Sommerzeit 0 oder 1
int begin_summertime; // Beginn der Sommerzeit, Julianischer Tag
int end_summertime; // Ende der Sommerzeit, Julianischer Tag
char date[15]; // Das Datum like "31.03.2008"
};
Das struct vereinfacht den Quellqode ungemein.
Wie schon gesagt, Programmieren macht viel Freude ;-)
Viele Grüße an Alle,
Hotte