Hallo zusammen, hier nur kurz eine kleine Implementation der Gaußschen Osterformel. Zur Feiertagsberechnung recht hilfreich :)
1 | // Function that calculates the date of easter sunday as days after februar
|
2 | // E.g. 32 would be 1. of april (Returns value: min. 22, max. 56)
|
3 | int GetEasterSundayDateAsDaysAfterFebruary( int YEAR ) |
4 | {
|
5 | int k = YEAR / 100; // K(X) = X div 100 |
6 | int s = 2 - (3*k + 3) / 4; // S(K) = 2 - (3K + 3) div 4 |
7 | int m = 15 + (3*k + 3) / 4 - (8*k + 13) / 25; // M(K) = 15 + (3K + 3) div 4 - (K + 13) div 25 |
8 | int a = YEAR % 19; // A(X) = X mod 19 |
9 | int d = ( 19*a + m ) % 30; // D(A,M) = (19A + M) mod 30 |
10 | //int r = (int) d / 29 + (int) d / 28 - (int) d / 29 - (int) a / 11; // R(D,A) = D div 29 + (D div 28 - D div 29) (A div 11)
|
11 | int r = ( d + a / 11 ) / 29; // Shorter Roegel version: R(D,A) = (D + A div 11) div 29 |
12 | int og = 21 + d - r; // OG(D,R) = 21 + D - R |
13 | int sz = 7 - ( YEAR + YEAR / 4 + s ) % 7; // SZ(X,S) = 7 - (X + X div 4 + S) mod 7 |
14 | int oe = 7 - ( og - sz ) % 7; // OE(OG,SZ) = 7 - (OG - SZ) mod 7 |
15 | |
16 | return og + oe; |
17 | }
|