Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Wochentag berechnen nach Gauss Kategorie: Programmierung C (von Francesco - 24.01.2011 22:51)
Ich nutze:
C-Control Pro Mega32, C-Control Pro Mega128, CC-Pro 32 Application Board, CC-Pro 128 Application Board
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)