Holidays related to Easter: Difference between revisions

Content added Content deleted
(Added Fōrmulæ solution)
(→‎{{header|BASH}}: Adding BASH)
Line 520: Line 520:
2020 Easter: Sun 12 Apr, Ascension: Thu 21 May, Pentecost: Sun 31 May, Trinity: Sun 7 Jun, Corpus: Thu 11 Jun
2020 Easter: Sun 12 Apr, Ascension: Thu 21 May, Pentecost: Sun 31 May, Trinity: Sun 7 Jun, Corpus: Thu 11 Jun
</pre>
</pre>

=={{header|BASH}}==
<lang bash>
#! /bin/bash
# vim: ts=4 :
# Calendar algorithm source: https://www.rmg.co.uk/stories/topics/when-easter


easter() {
y=$1
if [[ $year -gt 2099 ]]
then
echo Error: This algorithm does not work after 2099.
exit
fi

(( day = 225 - 11 * (year % 19) ))

while [[ $day -gt 50 ]]
do
(( day -= 30 ))
done

if [ $day -gt 48 ]
then
(( --day ))
fi

(( day = day + 7 - (year + year/4 + day + 1) % 7 ))

echo $day
}

for year in {1998..2099}
do
day=$( easter $year )
if [ $day -gt 31 ]
then
(( day -= 31 ))
printf "%d-%02d-%02d\n" $year 4 $day
else
printf "%d-%02d-%02d\n" $year 3 $day
fi
done

</lang>


=={{header|BBC BASIC}}==
=={{header|BBC BASIC}}==