Für alle, die schon immer wissen wollten, wann der ominöse erste zweite Mittwoch im Monat ist, an dem der Dimitri-Stammtisch stattfindet, hier der Quelltext in C:
/* TABSIZE 4 * @(#)stammtisch.c * * 1996-10-17 von Rainer Seitel @ KA */ #include <stdio.h> #include <time.h> #define Stammtisch_der_MAUS_KA() \ printf("Stammtisch der MAUS KA ist am %d-%02d-%02d.\n", Jahr, Monat, Tag) #define FALSE 0 #define TRUE 1 /* * Berechnet den letzten Tag eines Monats. */ short letzter_Tag( short Jahr, short Monat ) { switch (Monat) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: return ((Jahr % 100) != 0 && (Jahr % 4) == 0 || (Jahr % 400) == 0) ? 29 : 28; } } /* * Testet ob ein Mittwoch vom 8. bis 14. Tag eines Monats vorliegt. */ short erster_zweiter_Mittwoch( short Jahr, short Monat, short Tag ) { if (Tag < 8 || Tag > 14) return FALSE; { struct tm ortszeit; time_t utc; int wochentag; ortszeit.tm_year = Jahr - 1900; ortszeit.tm_mon = Monat - 1 ; ortszeit.tm_mday = Tag; ortszeit.tm_hour = ortszeit.tm_min = ortszeit.tm_sec = 0; utc = mktime(&ortszeit); return (localtime(&utc)->tm_wday == 3); } } int main() { int Jahr, Monat, Tag; for (Jahr = 1991, Monat = 10; ; Jahr++, Monat = 1) for (; Monat <= 12; Monat++) for (Tag = 1; Tag <= letzter_Tag(Jahr, Monat); Tag++) if (erster_zweiter_Mittwoch(Jahr, Monat, Tag) == TRUE) Stammtisch_der_MAUS_KA(); }
Langfristig funktionierender Alias: http://rainer.seitel.home.pages.de/maus_ka_stammtischterminberechnungsprogramm.c.html
1997-08-29 Rainer Seitel