Schneider / Amstrad CPC Forum

Amstrad / Schneider CPC => Programmierung => Topic started by: Devilmarkus on 19. April 2019, 14:07:29

Title: Ostersonntag berechnen
Post by: Devilmarkus on 19. April 2019, 14:07:29
Da wir ja Karfreitag haben:
So könnt ihr den Ostersonntag berechnen:


10 MODE 2:INPUT"Jahr:",X
20 K=INT(X/100)
30 M=15+INT((3*K+3)/4)-INT((8*K+13)/25)
40 S=2-INT((3*K+3)/4)
50 A=X MOD 19
60 D=(19*A+M) MOD 30
70 R=INT(D/29)+(INT(D/28)-INT(D/29))*INT(A/11)
80 OG=21+D-R
90 SZ=7-(X+INT(X/4)+S) MOD 7
100 OE=7-(OG-SZ) MOD 7
110 OS=OG+OE:M$="March":IF OS>31 THEN OS=OS-31:M$="April"
120 PRINT "Ostersonntag ist im Jahr";X;"am ";MID$(STR$(OS),2);". ";M$


Euch allen frohe Ostern!

Title: Re: Ostersonntag berechnen
Post by: TFM on 21. April 2019, 15:52:41
Frohe Ostern Euch allen, hier die Eier...


Title: Re: Ostersonntag berechnen
Post by: TFM on 21. April 2019, 15:56:08
So ein Programm wäre auch für den Pfingst-Sonntag sinnvoll! Will das jemand umsetzen?
Title: Re: Ostersonntag berechnen
Post by: Devilmarkus on 21. April 2019, 18:39:47
Rechne einfach das Ergebnis plus 49, und teil es dann auf die Monate, dann hast du es...
Title: Re: Ostersonntag berechnen
Post by: Devilmarkus on 21. April 2019, 18:58:49
So z.B.:
10 MODE 2:INPUT"Jahr:",X
30 K=INT(X/100)
40 M=15+INT((3*K+3)/4)-INT((8*K+13)/25)
50 S=2-INT((3*K+3)/4)
60 A=X MOD 19
70 D=(19*A+M) MOD 30
80 R=INT(D/29)+(INT(D/28)-INT(D/29))*INT(A/11)
90 OG=21+D-R
100 SZ=7-(X+INT(X/4)+S) MOD 7
110 OE=7-(OG-SZ) MOD 7
120 OS=OG+OE:M$="March":IF OS>31 THEN OS=OS-31:M$="April"
130 PRINT "Ostersonntag ist im Jahr";X;"am ";MID$(STR$(OS),2);". ";M$
140 PS=OS+49
150 IF PS>30 THEN PS=PS-30:M$="Mai"
160 IF PS>31 AND M$="Mai" THEN PS=PS-31:M$="Juni"
190 PRINT "Pfingstsonntag ist im Jahr";X;"am ";MID$(STR$(PS),2);". ";M$
Title: Re: Ostersonntag berechnen
Post by: TFM on 25. April 2019, 01:47:36
Cool! Funktioniert!  :smiley027: