Нужно помощь... вот это я написал... она выводит какой был (будет) день недели если ввести месяц, день, год
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <windows.h>
//-------------------------
char bufRus [256];
char*Rus (const char*text) {
CharToOem(text, bufRus);
return bufRus;
}
//-------------------------
void main ()
{
int day, month, year;
int c, y;
int m;
int d;
printf(Rus("Определения дня недели по дате\n");
printf(Rus("Введите дату:день месяц год\n");
printf(Rus("Например 5 12 201\n");
printf(Rus("Введите: день -> ");
scanf("%i", &day);
printf(Rus(" месяц -> ");
scanf("%i", &month);
printf(Rus(" год-> ");
scanf("%i", &year);
if(month==1 || month==2)
year--; //январь и февраль относятся к предыдущим
m=month - 2; //год начинается с марта
if (m<=0) m+=12; //для января и февраля
//m - номер месяца по римскому
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: printf(Rus("Понедельник/n"); break;
case 2: printf(Rus("Вторник/n"); break;
case 3: printf(Rus("Среда/n"); break;
case 4: printf(Rus("Четверг/n"); break;
case 5: printf(Rus("Пятница/n"); break;
case 6: printf(Rus("Суббота/n"); break;
case 0: printf(Rus("Воскресенье/n"); break;
}
getch();
}Мне задали задачку сделать так что бы при вводе неправильной даты. Например 56 декабря 1987 года выводило что данного дня не существует
З.Ы в с++ я новичок... кирпичами не кидаца
Отредактировано Xander (2009-02-23 20:35:11)

