Holidays related to Easter: Difference between revisions

Holidays related to Easter in FreeBASIC
(added Arturo)
(Holidays related to Easter in FreeBASIC)
Line 1,953:
day=mod(n,31)+1
end</syntaxhighlight>
 
=={{header|FreeBASIC}}==
{{libheader|datetime}}
{{libheader|string}}
<syntaxhighlight lang="vb">#include "datetime.bi"
#include "string.bi"
 
Dim Shared As Integer anno, mes, dia
 
Type mytype
f As String*9
d As Short
End Type
Dim Shared fechas(1 To 5) As mytype => {("Easter ",0),_
("Ascension",39),("Pentecost",49),("Trinity ",56),("Corpus ",60)}
 
Function Pascua(anno As Short) As Double
Dim As Short a, b, c, d, e
Dim As Short f, g, h, i, k
Dim As Short l, m, n
a = anno Mod 19
b = anno \ 100
c = anno Mod 100
d = b \ 4
e = b Mod 4
f = (b + 8) \ 25
g = (b - f + 1) \ 3
h = (19 * a + b - d - g + 15) Mod 30
i = c \ 4
k = c Mod 4
l = (32 + 2 * e + 2 * i - h - k) Mod 7
m = (a + 11 * h + 22 * l) \ 451
n = h + l - 7 * m + 114
Dim As Short mes = n \ 31
Dim As Short dia = n Mod 31 + 1
Return Dateserial(anno, mes, dia)
End Function
 
Sub Mostar(anno As Short)
Dim As Double e = Pascua(anno)
Print Using (" #### "); anno;
For i As Short = 1 To Ubound(fechas)
Print Format(e + fechas(i).d, "dd/mmm"); Spc(3);
Next i
Print
End Sub
 
Print " Year Easter Ascension Pentecost Trinity C/Christi"
Print " CE Sunday Thursday Sunday Sunday Thursday "
Print " ---- ------ --------- ---------- ------- ---------"
 
For anno = 400 To 2100 Step 100
Mostar(anno)
Next anno
Print
For anno = 2010 To 2020
Mostar(anno)
Next anno
 
Sleep</syntaxhighlight>
{{out}}
<pre> Year Easter Ascension Pentecost Trinity C/Christi
CE Sunday Thursday Sunday Sunday Thursday
---- ------ --------- ---------- ------- ---------
400 02/abr. 11/may. 21/may. 28/may. 01/jun.
500 04/abr. 13/may. 23/may. 30/may. 03/jun.
600 13/abr. 22/may. 01/jun. 08/jun. 12/jun.
700 15/abr. 24/may. 03/jun. 10/jun. 14/jun.
800 23/abr. 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/abr. 17/may. 27/may. 03/jun. 07/jun.
1200 09/abr. 18/may. 28/may. 04/jun. 08/jun.
1300 18/abr. 27/may. 06/jun. 13/jun. 17/jun.
1400 20/abr. 29/may. 08/jun. 15/jun. 19/jun.
1500 01/abr. 10/may. 20/may. 27/may. 31/may.
1600 02/abr. 11/may. 21/may. 28/may. 01/jun.
1700 11/abr. 20/may. 30/may. 06/jun. 10/jun.
1800 13/abr. 22/may. 01/jun. 08/jun. 12/jun.
1900 15/abr. 24/may. 03/jun. 10/jun. 14/jun.
2000 23/abr. 01/jun. 11/jun. 18/jun. 22/jun.
2100 28/mar. 06/may. 16/may. 23/may. 27/may.
 
2010 04/abr. 13/may. 23/may. 30/may. 03/jun.
2011 24/abr. 02/jun. 12/jun. 19/jun. 23/jun.
2012 08/abr. 17/may. 27/may. 03/jun. 07/jun.
2013 31/mar. 09/may. 19/may. 26/may. 30/may.
2014 20/abr. 29/may. 08/jun. 15/jun. 19/jun.
2015 05/abr. 14/may. 24/may. 31/may. 04/jun.
2016 27/mar. 05/may. 15/may. 22/may. 26/may.
2017 16/abr. 25/may. 04/jun. 11/jun. 15/jun.
2018 01/abr. 10/may. 20/may. 27/may. 31/may.
2019 21/abr. 30/may. 09/jun. 16/jun. 20/jun.
2020 12/abr. 21/may. 31/may. 07/jun. 11/jun.</pre>
 
=={{header|Fōrmulæ}}==
2,136

edits