ФІО = Руденко Віктор Запитання: Визначити клас ДАТА – інформація про день, місяць, рік. Реалізувати операцію віднімання двох дат – кількість днів між ними, а також додавання та віднімання певної кількості днів для одержання нової дати. ==================================== ANSWER ==================================== /* Запитання: Визначити клас ДАТА – інформація про день, місяць, рік. Реалізувати операцію віднімання двох дат – кількість днів між ними, а також додавання та віднімання певної кількості днів для одержання нової дати */ #include #include #include #include using namespace std; struct Tdmy{ // структура long d,m,y; // число місяць рік void dmy_pp(int count=1){ // дата плюс плюс int i=0; do{ i++; d++; switch (m){ case 1: if (d>31) {d=1; m++;} break; case 2: if (d> ((y % 4 == 0) ? 29 : 28) ) {d=1; m++;} break; case 3: if (d>31) {d=1; m++;} break; case 4: if (d>30) {d=1; m++;} break; case 5: if (d>31) {d=1; m++;} break; case 6: if (d>30) {d=1; m++;} break; case 7: if (d>31) {d=1; m++;} break; case 8: if (d>31) {d=1; m++;} break; case 9: if (d>30) {d=1; m++;} break; case 10: if (d>31){d=1; m++;} break; case 11: if (d>30){d=1; m++;} break; case 12: if (d>31){d=1; m=1; y++;} break; // перевіряємо корректність } }while (i!=count); } void dmy_mm(int count=1){ // дата мінус мінус int i=0; do{ i++; d--; if (d==0){ switch (m){ case 1: y--; m=12; d=31; break; case 2: m--; d=31; break; case 3: m--; d=(y % 4 == 0) ? 29 : 28; break; case 4: m--; d=31; break; case 5: m--; d=30; break; case 6: m--; d=31; break; case 7: m--; d=30; break; case 8: m--; d=31; break; case 9: m--; d=31; break; case 10: m--; d=30; break; case 11: m--; d=31; break; case 12: m--; d=30; break; } } }while (i!=count); } void show_date(){ // функція виводить дату cout<<"The date is (d.m.y) : "<>d; cout<<" M : "; cin>>m; cout<<" Y : "; cin>>y; cout<p2.y){ return 2; } if (p1.yp2.m){ return 2; } if (p1.mp2.d){ return 2; } if (p1.dp2 // міняємо місцями дати Tdmy temp=p1; p1=p2; p2=temp; } long interval=0; // часовий інтервал = 0 while (test(p1,p2)!=0) {// інкрементуємо дату до тих пір, поки дати не зрівняються interval++; p1.dmy_pp(); } return interval; } int main(){ Tdmy var1; // створили структуру Tdmy var2; // створили структуру do{ system("cls"); cout<<"enter 1: \n"; var1.enter_date(); // ввели дату 1 cout<<"enter 2: \n"; var2.enter_date();// ввели дату 2 var1.show_date(); var2.show_date(); cout< DATE1+5 AND DATE2-5\n"; var1. dmy_pp(5); var2. dmy_mm(5); var1.show_date(); // вивели дату1 var2.show_date(); // 2 cout<