-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEasterSunday.prg
39 lines (32 loc) · 1.13 KB
/
EasterSunday.prg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
*-----------------------------------------------------------------------------*
* TableOfEaster | EasterSunday.prg
*-----------------------------------------------------------------------------*
*-----------------------------------------------------------------------------*
FUNCTION EasterSunday( xnYear )
*-----------------------------------------------------------------------------*
LOCAL A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, R
LOCAL nDay, nMonth
LOCAL cReturn
A := xnYear % 19
B := INT( xnYear / 100 )
C := xnYear % 100
D := INT(B / 4)
E := B % 4
F := INT( ( B + 8 ) / 25 )
G := INT( ( B - F + 1 ) / 3 )
H := ( 19 * A + B - D - G + 15 ) % 30
I := INT( C / 4 )
K := C % 4
L := ( 32 + 2 * E + 2 * I - H - K ) % 7
M := INT( ( A + 11 * H + 22 * L ) / 451 )
P := ( H + L - 7 * M + 114 ) % 31
R := INT( ( H + L - 7 * M + 114 ) / 31)
nDay := P + 1
nMonth := R
cReturn := STRZERO( nDay , 2 ) ;
+ " " ;
+ IIF ( nMonth == 3 , "March" , "April" ) ;
+ " " ;
+ STR( xnYear , 4 )
RETURN cReturn
*-----------------------------------------------------------------------------*