C/C++ - Как написать программу-календарь?

Ответить
Аватара пользователя
denver-312

C/C++ - Как написать программу-календарь?

Сообщение denver-312 »

Помогите пожалуйста!

Даны целые числа N1, N2, которые обозначают число и месяц.

Например, “1 4” – это “1 апреля”

Требуется разработать и отладить программу подсчёта дня недели этой даты,

если год невисокосный, а 1 января этого года – среда.

Я никак не соображу, как мне дни недели вместе со днями в месяце задать в программе. Т. е.

вот этот кусок:






case 1: puts(“PONEDELNIK \n”); break;

case 2: puts(“VTORNIK \n”); break;

case 3: puts(“SREDA \n”); break;

case 4: puts(“CHETVERG \n”); break;

case 5: puts(“PYTNICA \n”); break;

case 6: puts(“SUBBOTA \n”); break;

case 7: puts(“VOSKRESENIE \n”); break;

default: puts(“CHSLO DILZNO BYT V DIAPAZONE 1..7 \n”);



вот с этим:



days[0] = 31; days[4] = 31; days[8] = 30;

days[1] = 28; days[5] = 30; days[9] = 31;

days[2] = 31; days[6] = 31; days[10] = 30;

days[3] = 30; days[7] = 31; days[11] = 31;





Заранее спасибо!
Аватара пользователя
Alexej77

Re: C/C++ - Как написать программу-календарь?

Сообщение Alexej77 »

C++ Builder 6:



Код:

Код: Выделить всё

    int N1, N2, i, dn;
    int days[12];
    div_t x;
    days[0] = 31;
    days[1] = 28;
    days[2] = 31;
    days[3] = 30;
    days[4] = 31;
    days[5] = 30;
    days[6] = 31;
    days[7] = 31;
    days[8] = 30;
    days[9] = 31;
    days[10] = 30;
    days[11] = 31;
    N1 = 1;
    N2 = 4;
    dn = 0;
    if (N2 > 1)
        for (i = 0; i < N2 - 1; i ++)
            dn += days[i];
    dn += N1;
    x = div(dn + 1, 7);
    ShowMessage("День недели: " + IntToStr(x.rem + 1));

1-понедельник, 7 - воскресенье



PS: Если перейти к системе юлианских дат, то можно определять день недели любого года, месяца, дня (с помощью 6-ти несложных формул).
Ответить

Вернуться в «Программирование и базы данных»