Pascal

Pascal Ikon med logotyp för Lazarus

Editor

Blaise Pascal

Externa länkar

Si-enhet

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.