Инструменты пользователя

Инструменты сайта


reshenie_zadachi_13

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

reshenie_zadachi_13 [2011/01/12 16:44]
reshenie_zadachi_13 [2020/06/13 13:46] (текущий)
Строка 1: Строка 1:
 +====== Задача 13 ======
 +**Задача 13:** Создайте класс, который будет содержать информацию о дате (день, месяц, год). С помощью механизма перегрузки операторов, определите операцию разности двух дат (результат в виде количества дней между датами), а также операцию увеличения даты на определенное количество дней.
 +<file>
 +/* 
 + * 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);
 +}
 +</file>