Напишите программу, которая по дате определяет день недели, на который эта дата приходится. Для вычисления дня недели воспользуйтесь формулой:
W = ( d+[(13m-1)/5]+Y+[Y/4]+[c/4]-2c + 777) % 7.
Здесь d - число месяца, m - номер месяца, если начинать счет с марта, как делали это в Древнем Риме (март -1, апрель -2, ... , февраль 12 ), Y - номер года в столетии, с - количество столетий. Квадратные скобки означают, что надо взять целую часть от значения, находящегося в скобках. Вычисленное по формуле значение определяет день недели: 1 - понедельник, 2 - вторник, ... , 6 - суббота, 0 - воскресенье.
/*
Программа по дате определяет день недели.
фрмула: (d + [1/5*(13*m - 1)] + Y + [Y/4] + [c/4] - 2*c + 777) * mod(7);
*/
#include "locale.h"
#include <stdio.h>
#include <curses.h>
int main()
{
int day, month, year; // день, месяц, год
int c,y; // столетие и год в столетии
int m; // месяц по древнеримскому календарю
int d; // день недели
char *loc;
loc = setlocale(LC_CTYPE,"ru_RU.UTF-8");
initscr();
printw("Определение дня недели по дате\n");
printw("Введите дату: день, месяц, год.\n");
printw("Например: 5 12 1939\n");
printw("-> ");
scanw("%i %i %i", &day, &month, &year);
if(month == 1 || month == 2)
year--;
m = month - 2;
if(m <= 0) m = m + 12;
c = year / 100;
y = year - c * 100;
d = (day + (13*m - 1)/5 + y + y/4 + c/4 - 2*c + 777) % 7;
switch(d)
{
case 1: printw("Понедельник."); break;
case 2: printw("Вторник."); break;
case 3: printw("Среда."); break;
case 4: printw("Четверг."); break;
case 5: printw("Пятница."); break;
case 6: printw("Суббота."); break;
case 0: printw("Воскресенье."); break;
}
getch();
endwin();
return 0;
}
Архив блога
-
▼
2011
(123)
-
▼
января 2011
(123)
- Тексты задач за месяц.
- Задача 155.
- Задача 154.
- Задача 153.
- Задача 152.
- Задача 151.
- Задача 150.
- Задача 149.
- Задача 148.
- Задача 147.
- Задача 146.
- Задача 145.
- Задача 144.
- Задача 143.
- Задача 142.
- Задача 141.
- Задача 140.
- Задача 139.
- Задача 138.
- Задача 137.
- Задача 136.
- Задача 135.
- Задача 134.
- Задача 133.
- Задача 132.
- Задача 131.
- Задача 130.
- Задача 129.
- Задача 128.
- Задача 127.
- Задача 126.
- Задача 125.
- Задача 124.
- Задача 123.
- Задача 122.
- Задача 121.
- Задача 120.
- Стихотворение.
- Я на Я.ру.
- Задача 119.
- Задача 118.
- Задача 117.
- Задача 116.
- Задача 115.
- Задача 114.
- Задача 113.
- Задача 112.
- Задача 111.
- Задача 110.
- Задача 109.
- Задача 108.
- Задача 107.
- Задача 106.
- Задача 105.
- Задача 104.
- Задача 103.
- Задача 102.
- Задача 101.
- Задача 100.
- Задача 99.
- Задача 98.
- Задача 97.
- Задача 96.
- Задача 95.
- Задача 94.
- Задача 93.
- Задача 92.
- Задача 91.
- Задача 90.
- Задача 89.
- Задача 88.
- Кириллица и curses.h - решение проблемы.
- Задача 87.
- Задача 86.
- Задача 85.
- Задача 84.
- Задача 83.
- Задача 82.
- Задача 81.
- Задача 80.
- Задача 79.
- Задача 78.
- Задача 77.
- Задача 76.
- Задача 75.
- Задача 74.
- Задача 73.
- Задача 72.
- Задача 71.
- Задача 70.
- Задача 69.
- Задача 68.
- Задача 67.
- Задача 66.
- Задача 65.
- Задача 64.
- Задача 63.
- Задача 62.
- Задача 61.
- Задача 60.
-
▼
января 2011
(123)
-
►
2010
(37)
- ► декабря 2010 (37)
Комментариев нет:
Отправить комментарий