Húsvét és a pünkösd dátumát meghatározó program?
Ezt a programot kellene megírnom C++-ban de nem nagyon sikerül.
A húsvét vasárnap minden évben a tavaszi napéjegyenlőséget követő holdtölte utáni első vasárnap, így dátuma március 22. és április 25. között változhat. Ennek meghatározására alkalmas a következő egyszerűsített algoritmus. Jelölje T az évszámot (1901<=T<=2099)! Kiszámítjuk a következő osztási maradékokat:
A = T / 19 maradéka
B = T / 4 maradéka
C = T / 7 maradéka
D = (19A+24) / 30 maradéka
E = (2B+4C+6D+5) / 7 maradéka.
Ezekből a húsvét-vasárnap dátuma H=22+D+E, ami márciusi dátum, ha H<=31, különben áprilisban H-31. Azonban létezik két kivétel: ha E=6 és D=29, akkor H=50, illetve ha E=6 és D=28 és A>10, akkor H=49.
Pünkösd minden évben húsvét után hét héttel következik.
Már erre is invalid suffix errort dob:
D = (19A+24)%30;
E = (2B+4C+6D+5)%7;
void GetEasterSunday(int wYear, int &wMonth, int &wDay)
{
// calculate easter sunday
// [in] wYear - 4-digit year to calculate (but not before 1583)
// [out] wMonth - month of easter sunday
// [out] wDay - day of easter sunday
int wCorrection = 0;
if (wYear < 1700) wCorrection = 4;
else if (wYear < 1800) wCorrection = 5;
else if (wYear < 1900) wCorrection = 6;
else if (wYear < 2100) wCorrection = 0;
else if (wYear < 2200) wCorrection = 1;
else if (wYear < 2300) wCorrection = 2;
else if (wYear < 2500) wCorrection = 3;
wDay = (19 * (wYear % 19) + 24) % 30;
wDay = 22 + wDay + ((2 * (wYear % 4) + 4 * (wYear % 7) + 6 * wDay + 5 + wCorrection) % 7);
// jump to next month
if (wDay > 31)
{
wMonth = 4;
wDay -= 31;
}
else
{
wMonth = 3;
}
}
19A
Ez szerinted micsoda C++-ban?
A matematikában a szám és a betű közül megspórolható a szorzásjel. Ez a programozási nyelvekben nincs így, ott ki kell tenni a *-ot.
Például 19A helyett 19*A-t kell írni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!