Wochentag berechnen nach Gauss Kategorie: Programmierung C (von Francesco - 24.01.2011 22:51) | ||
| ||
Moin, da ich auf die Schnelle hier nichts gefunden habe, habe ich mir die Berechnung des Wochtages fix selber gebastelt. Ist eine vereinfachte Formel der Gausschen Wochentagsberechnung. Funktioniert von 2001 bis 2099 (Hunde wollt ihr ewig leben? ;-) ) Funktioniert wegen der FLOOR Funktion nur auf dem 128er. In der Funktion wird das aktuelle Datum eingelesen und als Rückgabe gibt es INT-Zahlen von 0 bis 6 (Sonntag bis Samstag) Ciao, Francesco ------------------------------------------------------------------------------------- int get_weekday (void) // berechnung Wochentag mit vereinfachter Gausscher Wochentagberechnung // Formel funktionert von 2001 bis 2099 (sollte eigentlich reichen) // weitere Infos bei wikipedia: // http://de.wikipedia.org/wiki/Gau�sche_Wochentagsformel { byte tag; byte mon; byte jah; int wot ; //Variablen int zr1 ; int zr2 ; int zr3 ; tag= Clock_GetVal(3)+1 ; mon= Clock_GetVal(4)+1 ; jah= Clock_GetVal(5) ; switch (mon) { // in zr1 ist die zwischenrechnung (2.6 x Monat - 0,2 abgerundet) // für Jan und Feb wird gemä� Gau� ein Jahr abgezogen case 1: zr1 = 28 ; jah-- ; break ; case 2: zr1 = 31 ; jah-- ; break ; case 3: zr1 = 2 ; break ; case 4: zr1 = 5 ; break ; case 5: zr1 = 7 ; break ; case 6: zr1 = 10 ; break ; case 7: zr1 = 12 ; break ; case 8: zr1 = 15 ; break ; case 9: zr1 = 18 ; break ; case 10: zr1 = 20 ; break ; case 11: zr1 = 23 ; break ; case 12: zr1 = 25 ; break ; } zr3 = floor (jah/4); //Zwischenrechnung zr2 = tag + zr1 +jah + zr3 ; //vereinfachte Gaussche Formel wot = zr2% 7 ; //Modulo auf 7 return wot ; //Rückgabe Wochentag 0 bis 6 (Sonntag = 0) } | ||
Antwort schreiben Antworten: Re: Wochentag berechnen nach Gauss (von Ernst H. - 25.01.2011 0:44) Re: Wochentag berechnen nach Gauss (von Ernst H. - 25.01.2011 1:14) Re: Wochentag berechnen nach Gauss (von PeterS - 25.01.2011 8:56) Re: Wochentag berechnen nach Gauss (von Ernst H. - 25.01.2011 19:28) Re: Wochentag berechnen nach Gauss (von Ernst H. - 25.01.2011 20:00) Re: Wochentag berechnen nach Gauss (von Baltus - 25.01.2011 21:54) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum