描述
编写日期类,并判断某个日期若干天之前是什么日期?
主函数里的代码已经给出,请补充完整,提交时请勿包含已经给出的代码。
int main() { int y, m, d, num; while(cin>>y>>m>>d>>num) { Date date(y, m, d); cout<<date-num<<endl; } return 0; }
输入
输入数据有多组,每组占2行,第一行为3个正整数,表示某个日期day的年、月、日。
第二行为一个整数n。
输出
每组输出一个日期,表示日期day对应n天前的日期,输出格式见样例。
样例输入
2000 3 1
1
2000 3 1
2
样例输出
2000-2-29
2000-2-28
#include<iostream> using namespace std; int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; class Date{ public: int y,m,d; Date(int y=0,int m=0,int d=0):y(y),m(m),d(d){} friend ostream &operator<<(ostream &os,const Date&x) { os<<x.y<<"-"<<x.m<<"-"<<x.d; return os; } Date operator-(int num) { while(num!=0) { if(y%400==0||y%4==0&&y%100!=0) day[2]=29; else day[2]=28; if(num-d>=0) { num=num-d; m--; if(m==0) { m=12; y--; } d=day[m]; } else if(num-d<0) { d=d-num; break; } } return *this; } }; class Integer; int main() { int y, m, d, num; while(cin>>y>>m>>d>>num) { Date date(y, m, d); cout<<date-num<<endl; } return 0; }