У вас вопросы?
У нас ответы:) SamZan.net

clss Dte {Класс дат int dmy; День месяц год public- Открытые члены класса void Ini

Работа добавлена на сайт samzan.net: 2016-03-30

Поможем написать учебную работу

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

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

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 7.5.2025

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;

 }




1. Аудиторские выборки
2. Как научиться управлять.html
3. Широкая форматка
4. ТЕМА- Економіка охорони здоров~я
5. Двух назидательных беседах 1843 вышедших сразу после Илиили[1] и отдельно о первом к этим первым ~ предис
6. тематичні основи представлення знань Дніпропетровськ 2007
7. Громадянське суспільство і демократія
8. ЦЕНТРИНВЕСТПРОЕКТ
9. Характеристика діяльності агломераційного цеху
10. Реферат- Зображальна функція кличних комунікатів у поетичному мовленні Лесі Українки