Нужно помощь... вот это я написал... она выводит какой был (будет) день недели если ввести месяц, день, год
#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)