Pascal
Editor
Länkar
Externa länkar
Kuriosa
Funktion för att räkna ut när det är röda dagar
//fpc 3.0.4
//program HelloWorld;
Uses sysutils;
var
year, A,B,C,D,E,F,G,H,I,J,K,L,M,N: Integer;
paskdagen, midsomdag, allahelgo: TDateTime;
Begin
ShortDateFormat := 'yyyy-mm-dd';
year := 2020;
A := year MOD 19;
B := Trunc(year/100);
C := year MOD 100;
D := Trunc(B/4);
E := B MOD 4;
F := Trunc((B+8)/25);
G := Trunc((B-F+1)/3);
H := (19*A+B-D-G+15) MOD 30;
I := Trunc(C/4);
J := C MOD 4;
K := (32+2*E+2*I-H-J) MOD 7;
L := Trunc((A+11*H+22*K)/451);
M := Trunc((H+K-7*L+114)/31);
N := (H+K-7*L+114) MOD 31;
paskdagen := StrToDate(IntToStr(year) + '-0' + IntToStr(M) + '-0' + IntToStr(Trunc(N+1)));
midsomdag := StrToDate(IntToStr(year) + '-06-20');
allahelgo := StrToDate(IntToStr(year) + '-10-31');
If DayOfWeek(midsomdag) <> 7 Then
Repeat
midsomdag := midsomdag + 1;
Until DayOfWeek(midsomdag) = 7;
If DayOfWeek(allahelgo) <> 7 Then
Repeat
allahelgo := allahelgo + 1;
Until DayOfWeek(allahelgo) = 7;
writeln(IntToStr(year) +'-01-01'); // Nyårsdagen
writeln(IntToStr(year) +'-01-06'); // Trettondagen
writeln(DateToStr(paskdagen - 2)); // Långfredag
writeln(DateToStr(paskdagen)); // Påskdagen
writeln(DateToStr(paskdagen + 1)); // Annandag påsk
writeln(IntToStr(year) + '-05-01'); // Första maj
writeln(DateToStr(paskdagen + 39)); // Kristi himmelfärdsdag
writeln(DateToStr(paskdagen + 49)); // Pingstdagen
writeln(DateToStr(paskdagen + 50)); // Annandag pingst
writeln(IntToStr(year) + '-06-06'); // Sveriges nationaldag
writeln(DateToStr(midsomdag - 1)); // Midsommarafton
writeln(DateToStr(midsomdag)); // Midsommardagen
writeln(DateToStr(allahelgo)); // Alla helgons dag
writeln(IntToStr(year) + '-12-24'); // Julafton
writeln(IntToStr(year) + '-12-25'); // Juldagen
writeln(IntToStr(year) + '-12-26'); // Annandag jul
End.