Új hozzászólás Aktív témák

  • Lortech

    addikt

    válasz Wizardmon #1469 üzenetére

    Itt egy megoldás, feltételezve, hogy 1900. 01. 01. hétfő volt.
    így 1900 utáni dátumokra működik elvileg helyesen, bár nem nagyon teszteltem.
    Próbáltam átláthatóra, és egyszerűre csinálni. Ha van másnak jobb megoldása, jöhet. ( konkrét forráskód formájában ;) )
    Ha nem egyértelmű valahol, kérdezz.

    program datum;
    uses crt;
    const
    napok: array[0..6] of string[9] = ('hétfő', 'kedd', 'szerda', 'csütörtök', 'péntek', 'szombat',
    'vasárnap');
    honapok: array[1..12] of byte=(31,28,31,30,31,30,31,31,30,31,30,31);


    var
    eltnapok:longint;
    i,ev:word;
    ho, nap:byte;

    begin
    eltnapok:=0;
    { - meghatározandó nap dátumának bekérése - }
    write('Év:');
    readln(ev);
    write('Hó:');
    readln(ho);
    write('Nap:');
    readln(nap);

    for i:=1900 to ev-1 do
    if (i mod 400 = 0) or ((i mod 4 =0) and (i mod 100<>0)) then eltnapok:=eltnapok+366
    else eltnapok:=eltnapok+365;

    for i:=1 to ho-1 do
    if (i=2) and ((ev mod 400 = 0) or ((i mod 4 =0) and (i mod 100<>0)))
    then eltnapok:=eltnapok+29 else eltnapok:=eltnapok+honapok[ i ];

    eltnapok:=eltnapok+nap-1;

    writeln(eltnapok,napok[eltnapok mod 7]);
    readln;
    end.



    ps: term. nem foglalkoztam a hibás inputok kiszűrésével.

    [Szerkesztve]

Új hozzászólás Aktív témák