Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
38(181). class Date{ //Класс дат
int d,m,y; //День, месяц, год
public: //Открытые члены класса
void Init_Date(int dd,int mm,int yy) //Инициализация даты
{d=dd; m=mm; y=yy;}
void Print(); //Функция печати
int DayOfYear(); //Вычисление номера дня в году
long Raznica(Date D2); //Вычисление разницы между двумя датами
};
#include<iostream.h>
void Date::Print() //Определение функции печати
{cout<<d<<'.'<<m<<'.'<<y;}
int leap(int year) //Определение високосности года
{return(year%4==0&&year%100!=0)||year%400==0;
}
char daytab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}}; //Массив дней
//в месяцах для висикостного и невисокостного года
int Date::DayOfYear() //Вычисление номера дня в году
{
int days=d;
int lp=leap(y);
for(int i=1;i<m;i++)
days+=daytab[lp][i]; //Суммируем все дни которые прошли с начала года до заданной даты
return days;
}
long Date::Raznica(Date D2) //Вычисление разницы между двумя //датами
{ if(y!=D2.y)
{ long days=365+leap(y)-DayOfYear();
for(int i=y+1;i<D2.y;i++)
days+=365+leap(i);
days+=D2.DayOfYear();
return days;
}
else return D2.DayOfYear()-DayOfYear();
}
#include<conio.h>
int main()
{ clrscr(); //Чистка экрана
Date D1,D2;
int dd,mm,yy,dd1,mm1,yy1,dd2,mm2,yy2;
cout<<"vvedite 1 daty dd,mm,yy\n"; //Вывод на экран
cin>>dd>>mm>>yy; //Ввод с клавиатуры
if(dd>31||mm>12) //Проверка существования даты
{cout<<"takoe nevozmojno";
return 1; //Завершение программы
}
D1.Init_Date(dd,mm,yy); D1.Print(); cout<<endl; //Инициализация первой даты
cout<<"vvedite 2 daty dd,mm,yy\n"; //Вывод на экран
cin>>dd1>>mm1>>yy1; //Ввод с клавиатуры
if(dd1>31||mm1>12) //Проверка существования даты
{cout<<"takoe nevozmojno"; //Вывод на экран
return 1; //Завершение программы
}
D2.Init_Date(dd1,mm1,yy1); //Инициализация второй даты
D2.Print();
cout<<"Eto " <<D2.DayOfYear()<<"den goda";
cout<<endl;
cout<<D1.Raznica(D2);
getch(); //Ждём нажатия любой клавиши
return 0;
}