Diskuze: Kalendář

C++ C a C++ Kalendář

Avatar
sonnys
Člen
Avatar
sonnys:

Ahoj
Jak lze naprogramovat za pomocí výčtového typu jednoduchý kalendář,když zadám datum,aby mi vypsal co to bylo za den (Pondělí,Úterý­...),jsem začátečník a nevím si rady s logikou programu.

 
Odpovědět 26.5.2014 9:28
Avatar
Odpovídá na sonnys
Libor Šimo (libcosenior):

Ja by som to riešil asi takto:

#include <stdio.h>

typedef enum {
    nedela, pondelok, utorok, streda, stvrtok, piatok, sobota
} DEN;

// algoritmus nájdený na stránke: http://rosettacode.org/wiki/Day_of_the_week
int den_v_tyzdni(int den, int mesiac, int rok)
{
    int nastavenie, mm, rr;
    nastavenie = (14 - mesiac) / 12;
    mm = mesiac + 12 * nastavenie - 2;
    rr = rok - nastavenie;
    return (den + (13 * mm - 1) / 5 + rr + rr / 4 - rr / 100 + rr / 400) % 7;
}

int main()
{
    DEN den;
    char *nazvy[] = { "nedela", "pondelok", "utorok", "streda", "stvrtok", "piatok", "sobota"};
    int dd, mm, rrrr;

    printf("Zadajte datum vo formate dd mm rrrr: ");
    scanf("%d%d%d", &dd, &mm, &rrrr);
    den = den_v_tyzdni(dd, mm, rrrr);
    printf("Bol(a) to %s.\n", nazvy[den]);

    return 0;
}
Nahoru Odpovědět  +1 26.5.2014 11:06
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
sonnys
Člen
Avatar
sonnys:

Dobrý nápad, takhle to bude asi nejjednodušší a i pro začínající programátora k pochopení

 
Nahoru Odpovědět 26.5.2014 12:00
Avatar
Odpovídá na sonnys
Libor Šimo (libcosenior):

Ak chceš niečomu rozumieť, musíš sa aj niečo naučiť.
Začínajúci nezvykne hneď riešiť výčtový typ.

Nahoru Odpovědět 26.5.2014 12:05
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
sonnys
Člen
Avatar
sonnys:

Zkusil jsem ten tvůj kód,ale vyhazuje mi to chybu,můžeš poradit?

 
Nahoru Odpovědět 26.5.2014 20:13
Avatar
Odpovídá na sonnys
Libor Šimo (libcosenior):

Písal som to v Code:Blocks a tam to funguje bez problémov.

Nahoru Odpovědět 3.6.2014 10:53
Aj tisícmíľová cesta musí začať jednoduchým krokom.
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 6 zpráv z 6.