title image


Smiley Ostern - Algorithmus nach Knuth
Kalenderwoche und -Tag kannst du aus der aktuellen Tagesinformation mit einigen Modulo-Operationen ermitteln.



Für Ostern hab ich den Algorithmus unten bei Knuth ausgeliehen. Die Feiertage sind meines Wissens entweder an festen Daten oder in letzter Konsequenz relativ zu Ostern oder Weihnachten.



struct daymon

{

int dday;

int mmon;

};

typedef struct daymon DAYMON;



main()

{

DAYMON ddmm;

int y;



for ( y = 1989; y <= 2000; y++ )

{

ost( &ddmm, y );

printf( "%2d. %2d. %5d\n", ddmm.dday, ddmm.mmon, y );

}

}



ost( dm, y )

DAYMON *dm;

int y;

{

int g, c, x, z, d, e, n;



g = 1 + y % 19 ;

c = 1 + ( y / 100 ) ;

x = 3 * ( c / 4 ) - 12 ;

z = ( ( 8 * c + 5 ) / 25 ) - 5 ;

d = 5 * y / 4 - x - 10 ;

e = ( 11 * g + 20 + z - x ) % 30 ;

if ( e < 0 ) e += 30 ;

if ( ( e == 25 ) && ( g > 11 ) || ( e == 24 ) ) e++ ;

n = 44 - e ;

if ( n < 21 ) n += 30 ;

dm->dday = n + 7 - ( d + n ) % 7 ;

dm->mmon = 3;

if ( dm->dday > 31 )

{

dm->dday -= 31;

dm->mmon++;

}

}







[edit] : Überschrift expliciter



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: