Kezdőoldal » Számítástechnika » Programozás » Húsvét és a pünkösd dátumát...

Húsvét és a pünkösd dátumát meghatározó program?

Figyelt kérdés

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.


2015. febr. 24. 21:13
 1/4 A kérdező kommentje:

Már erre is invalid suffix errort dob:

D = (19A+24)%30;

E = (2B+4C+6D+5)%7;

2015. febr. 24. 21:34
 2/4 anonim ***** válasza:

[link]


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;

}

}

2015. febr. 24. 21:36
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:

19A

Ez szerinted micsoda C++-ban?

2015. febr. 24. 23:15
Hasznos számodra ez a válasz?
 4/4 anonim ***** válasza:

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.

2015. febr. 25. 13:33
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!