// Time-stamp: "(23.04.02 21:10) gauss.cpp [Klaus@Wachtler.de]"
//
// +----------------------------------------------------------------------+
// | |
// | i = jahr/100 - jahr/400 + 4; |
// | |
// +----------------------------------------------------------------------+
// | |
// | j = i - jahr/300 + 11; |
// | |
// +----------------------------------------------------------------------+
// | |
// | a = ( ( jahr%19 )*19 + j )%30; |
// | |
// +----------------------------------------------------------------------+
// | |
// | b = ( ( ( jahr%4 )*2 + 4*jahr + 6*a + i )%7 ) + a - 9; |
// | |
// +----------------------------------------------------------------------+
// | |
// | b<1 |
// | | |
// +----- j ---------|---------------- n ---------------------------------+
// | | |
// | | (b==26) |
// | | ODER |
// | | (a==28 UND b==25 UND ( ( 11*( j + 1 ) )%30 )<19) ) |
// | | | |
// | +------- j ------+----------- n ---------------------+
// | | | |
// | ot = 31 + b; | b = b - 7; | |
// | om = 3; | | |
// | +----------------+-----------------------------------+
// | | |
// | | ot = b; |
// | | om = 4; |
// | | |
// +----------------------------------------------------------------------+
//
// Ostersonntag = 1. Sonntag nach 1. Vollmond im Frühjahr
#include <stdio.h>
void gauss( int jahr )
{
int i, j, a, b, ot, om;
i = jahr/100 - jahr/400 + 4;
j = i - jahr/300 + 11;
a = ( ( jahr%19 )*19 + j )%30;
b = ( ( ( jahr%4 )*2 + 4*jahr + 6*a + i )%7 ) + a - 9;
if( b<1 )
{
ot = 31 + b;
om = 3;
}
else
{
if( (b==26)
||
(a==28 && b==25 && ( ( 11*( j + 1 ) )%30 )<19)
)
{
b = b - 7;
}
ot = b;
om = 4;
}
printf( "%02d.%02d.%04d\n", ot, om, jahr );
}
int main( int nargs, char **args )
{
for( int i=1980; i<2006; i++ )
{
gauss( i );
}
return 0;
}
Anmerkung: weitere interessante Informationen zum Kalender, zugehörige Algorithmen und Literaturverweise finden sich in der c't 15/97, S. 312.
Weitere ganz interessante Informationen zu anderen Kalenderrechnungen erhält man über http://www.koenigsmuenster.de/rsk/einfuehrung.htm; beispielsweise kann man unter http://www.koenigsmuenster.de/rsk/dechija.htm studieren, wann das jüdische Jahr beginnt. Dagegen ist Ostern eine leichte Übung.