
19.11.2009, 15:03
|
|
Новичок
Регистрация: 21.12.2006
Сообщений: 5
С нами:
10203946
Репутация:
0
|
|
спасайте..
написал программу на С++ которая высчитывает дни недели.
стал писать защиту от дураков, но доделать её немогу.
нужно сделать чтоб программа учитывала весокосные года и при ошибке писала что вы ошиблись.
идейки есть( но к сажалению языка незнаю( ибо в универе прошлом учил паскаль(
завтра сдавать а я низнаю как сделать(
PHP код:
#include <stdio.h>
#include <windows.h>
#include <math.h>
#include <conio.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 2001\n"));
printf(Rus("ВВедите: Месяц ->\n"));
scanf("%i", &month);
//__________________________Защита________________________________
while (month>12)
{
if (month>12)
{printf(Rus("Дибил, ошибся, попробуй ещё ->\n"));
scanf("%i", &month); }
else break;
}
//__________________________________________________________
printf(Rus("ВВедите: День ->\n"));
scanf("%i", &day);
//__________________________Защита________________________________
while (month==1||month==3||month==5||month==7||month==8||month==10||month==12)
{
if (day>31)
{printf(Rus("Дибил, ошибся, попробуй ещё ->\n"));
scanf("%i", &day);}
else break;
}
while (month==2)
{
if (day>29)
{printf(Rus("Дибил, ошибся, попробуй ещё ->\n"));
scanf("%i", &day);}
else break;
}
while (month==4||month==6||month==9||month==11)
{
if (day>30)
{printf(Rus("Дибил, ошибся, попробуй ещё ->\n"));
scanf("%i", &day);}
else break;
}
//__________________________________________________________
printf(Rus("ВВедите: Год ->\n"));
scanf("%i", &year);
if (month==1||month==2)
year--;
m=month - 2;
if (m<=0) 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: 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 ();
}
|
|
|