IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Filip Nguyen
Člen
Avatar
Filip Nguyen:5.12.2017 18:21

obrý den, jak byste toto vypočítali v pythonu?

V roce 2012 je velikonoční neděle 8. dubna

a = zbytek po dělení roku číslem 19
b =
zbytek po dělení roku číslem 4
c =zbytek po dělení roku číslem 7
Pro 20. a 21. století platí konstanty:
m = 24
n = 5
d = Zbytek po dělení (19a + m) číslem 30
e = Zbytek po dělení (n + 2b + 4c + 6d) číslem 7
Den u a měsíc v Velikonoční neděle se určí následovně:

u = d + e − 9
Je-li u = 25, d = 28, e = 6 a a > 10, pak u = 18, v = 4 a Velikonoční neděle připadá na 18. duben.
Jinak, je-li u ≥ 1 a u ≤ 25, pak v = 4 a Velikonoční neděle připadá na u-tý duben.
Jinak, je-li u > 25, pak u = u - 7, v = 4 a Velikonoční neděle připadá na u-tý duben.
Jinak u = 22 + d + e, v = 3 a Velikonoční neděle připadá na u-tý březen.

 
Odpovědět
5.12.2017 18:21
Avatar
krepsy3
Tvůrce
Avatar
krepsy3:5.12.2017 19:38

Hele tady jsi v C#, napíšu to v C#, v Pythonu to jistě bude podobně, jen neznám syntax. Btw. proč jsi to postnul i v C++ fóru? Kór když chceš Python :D :D :D

public DateTime GetEasterMonday(int year)
{
        int a = year % 19;
        int b = year % 4;
        int c = year % 7;
        int d = ((a * 19) + 24) % 30;
        int e = (5 + (b * 2) + (c * 4) + (d * 6)) % 7;
        int u = d + e - 9;

        if (u == 25 && d == 28 && e == 6 && a > 10) return new DateTime(year, 18, 4);
        else if (u > 1 && u <= 25) return new DateTime(year, u, 4);
        else if (u > 25) return new DateTime(year, u - 7, 4);
        else return new DateTime(year, u + 31, 3);
}

Není to nic složitého, jen pár výpočtů přesně podle stanovených rovnic :)
Pokud bys nevěděl, co co znamená (vzhledem k syntaxním rozdílům), ptej se ;)

Editováno 5.12.2017 19:41
Nahoru Odpovědět
5.12.2017 19:38
Programátor je stroj k převodu kávy na kód.
Avatar
Filip Nguyen
Člen
Avatar
Odpovídá na krepsy3
Filip Nguyen:5.12.2017 20:13

Čau a dík, právě začínám s programováním a učím se to, jinak nevím proč sem to dával do C+ a C++ fóra :D

 
Nahoru Odpovědět
5.12.2017 20:13
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.