Задача 13: Создайте класс, который будет содержать информацию о дате (день, месяц, год). С помощью механизма перегрузки операторов, определите операцию разности двух дат (результат в виде количества дней между датами), а также операцию увеличения даты на определенное количество дней.
/* * Created on January 12, 2011, 11:38 AM */ #include <cstdlib> #include <iostream> #include <ctime> #include <cstdio> using namespace std; class myClassDate { struct tm *initime; time_t rawtime; struct mydate { int my_day; int my_mon; int my_year; } myinitdate; public: myClassDate();//конструктор myClassDate(const myClassDate &c){};//конструктор копирования ~myClassDate(){};//деструктор myClassDate operator-(const myClassDate &N) { myClassDate temp; temp.myinitdate.my_day=myinitdate.my_day-N.myinitdate.my_day; //temp.dig=dig-N.dig; return temp; } void printdate(){cout<<myinitdate.my_day<<myinitdate.my_mon<<myinitdate.my_year<<"\n"; }; void addday(int days); }; myClassDate::myClassDate() { rawtime = time (NULL); initime = localtime (&rawtime); myinitdate.my_day=initime->tm_mday; myinitdate.my_mon=initime->tm_mon; myinitdate.my_year=initime->tm_year; } void myClassDate::addday(int days) { if (myinitdate.my_day+days>31) cout<<"Error! myinitdate.my_day+days>31"<<"\n"; else myinitdate.my_day+=days; } int main(int argc, char** argv) { myClassDate A,B,C; A.printdate(); A.addday(40); //Error A.addday(5); A.printdate(); //разность двух дат B.printdate(); C=A-B; C.printdate(); return (EXIT_SUCCESS); }