Holidays related to Easter: Difference between revisions

no edit summary
mNo edit summary
No edit summary
Line 3,478:
2020 Sun 12 Apr Thu 21 May Sun 31 May Sun 07 Jun Thu 11 Jun
</pre>
 
=={{header|PureBasic}}==
<lang PureBasic>DataSection
C_DAYS:
Data.i 0,39,49,56,60
END_C_DAYS:
DAYS_MT:
Data.i 0,31,28,31,30,31,30,31,31,30,31,30,31
END_DAYS_MT:
EndDataSection
 
Dim m.s{3}(12) : PokeS(@m(),"___JanFebMarAprMayJunJulAugSepOctNovDec")
Dim dom.i(12) : CopyMemory(?DAYS_MT,@dom(),?END_DAYS_MT-?DAYS_MT)
Structure tDate : yyyy.i : mm.i : dd.i : EndStructure
Define.tDate DateTime, BufDateTime
 
Procedure.b IsLeap(y.i)
ProcedureReturn Bool( y % 4 = 0 ) & Bool( y % 100 <> 0 ) | Bool( y % 400 = 0 )
EndProcedure
 
Procedure.i DayOfMt(mm.i,yyyy.i)
Shared dom()
If mm=2 And IsLeap(yyyy) : ProcedureReturn 29 : Else : ProcedureReturn dom(mm) : EndIf
EndProcedure
 
Procedure delta(*pDate.tDate,AddDays.i)
*pDate\dd+AddDays
dom.i=DayOfMt(*pDate\mm,*pDate\yyyy)
While *pDate\dd-dom>0
*pDate\mm+1
If *pDate\mm>12 : *pDate\mm=1 : *pDate\yyyy+1 : EndIf
*pDate\dd-dom
dom=DayOfMt(*pDate\mm,*pDate\yyyy)
Wend
EndProcedure
 
Procedure dt(y.i)
a.i=y%19
b.i=y/100
c.i=y%100
d.i=b/4
e.i=b%4
f.i=(b+8)/25
g.i=(b-f+1)/3
h.i=(19*a+b-d-g+15)%30
i.i=c/4
k.i=c%4
l.i=(32+2*e+2*i-h-k)%7
m.i=(a+11*h+22*l)/451
num.i=h+l-7*m+114
mt.i=num/31
dy.i=(num%31)+1
Shared DateTime
DateTime\yyyy=y
DateTime\mm=mt
DateTime\dd=dy
EndProcedure
 
Macro PutTab(i)
dt(i) : BufDateTime=DateTime : r$=RSet(Str(DateTime\yyyy),4)
*p_C_Days=?C_DAYS
While *p_C_Days<?END_C_DAYS
delta(@DateTime,PeekI(*p_C_Days))
r$+Space(5)+RSet(Str(DateTime\dd),2,"0")+" "+m(DateTime\mm)
DateTime=BufDateTime
*p_C_Days+SizeOf(Integer)
Wend
EndMacro
 
OpenConsole()
PrintN("Year"+Space(5)+"Easter Ascension Pentecost Trinity C/Christi")
PrintN(" CE "+Space(5)+"Sunday Thursday Sunday Sunday Thursday")
PrintN("----"+Space(5)+"------ --------- ---------- ------- ---------")
For i=400 To 2100 Step 100 : PutTab(i) : PrintN(r$) : Next
PrintN("")
For i=2010 To 2020 : PutTab(i) : PrintN(r$) : Next
Input()</lang>
{{out}}
<pre>Year Easter Ascension Pentecost Trinity C/Christi
CE Sunday Thursday Sunday Sunday Thursday
---- ------ --------- ---------- ------- ---------
400 02 Apr 11 May 21 May 28 May 01 Jun
500 04 Apr 13 May 23 May 30 May 03 Jun
600 13 Apr 22 May 01 Jun 08 Jun 12 Jun
700 15 Apr 24 May 03 Jun 10 Jun 14 Jun
800 23 Apr 01 Jun 11 Jun 18 Jun 22 Jun
900 28 Mar 06 May 16 May 23 May 27 May
1000 30 Mar 08 May 18 May 25 May 29 May
1100 08 Apr 17 May 27 May 03 Jun 07 Jun
1200 09 Apr 18 May 28 May 04 Jun 08 Jun
1300 18 Apr 27 May 06 Jun 13 Jun 17 Jun
1400 20 Apr 29 May 08 Jun 15 Jun 19 Jun
1500 01 Apr 10 May 20 May 27 May 31 May
1600 02 Apr 11 May 21 May 28 May 01 Jun
1700 11 Apr 20 May 30 May 06 Jun 10 Jun
1800 13 Apr 22 May 01 Jun 08 Jun 12 Jun
1900 15 Apr 24 May 03 Jun 10 Jun 14 Jun
2000 23 Apr 01 Jun 11 Jun 18 Jun 22 Jun
2100 28 Mar 06 May 16 May 23 May 27 May
 
2010 04 Apr 13 May 23 May 30 May 03 Jun
2011 24 Apr 02 Jun 12 Jun 19 Jun 23 Jun
2012 08 Apr 17 May 27 May 03 Jun 07 Jun
2013 31 Mar 09 May 19 May 26 May 30 May
2014 20 Apr 29 May 08 Jun 15 Jun 19 Jun
2015 05 Apr 14 May 24 May 31 May 04 Jun
2016 27 Mar 05 May 15 May 22 May 26 May
2017 16 Apr 25 May 04 Jun 11 Jun 15 Jun
2018 01 Apr 10 May 20 May 27 May 31 May
2019 21 Apr 30 May 09 Jun 16 Jun 20 Jun
2020 12 Apr 21 May 31 May 07 Jun 11 Jun</pre>
 
=={{header|Python}}==
164

edits