题解 | #打印日期#
打印日期
https://www.nowcoder.com/practice/b1f7a77416194fd3abd63737cdfcf82b
#include <ctime> #include <iostream> using namespace std; class ti { private: int _year; int _mouth; int _day; int _add; public: ti(int year,int add) { _year=year; _add=add; _mouth=1; _day=0; } void caculate() { int arr[13]={-1,31,28,31,30,31,30,31,31,30,31,30,31}; while(_add!=0) { if(_mouth==2&&((_year%4==0&&_year%100!=0)||(_year%400==0))) { if(_add+_day>29) { _add-=(30-_day); _day=1; ++_mouth; if(_mouth==13) { _mouth=1; ++_year; } } else { _day+=_add; _add=0; } } else { if(_add+_day>arr[_mouth]) { _add-=arr[_mouth]+1-_day; _day=1; ++_mouth; if(_mouth==13) { _mouth=1; ++_year; } } else { _day+=_add; _add=0; } } } } void print() { if(_mouth>9) { if(_day>9)cout<<_year<<"-"<<_mouth<<"-"<<_day<<endl; else cout<<_year<<"-"<<_mouth<<"-0"<<_day<<endl; } else { if(_day>9)cout<<_year<<"-0"<<_mouth<<"-"<<_day<<endl; else cout<<_year<<"-0"<<_mouth<<"-0"<<_day<<endl; } } }; int main() { int year; int add; while(scanf("%d%d",&year,&add)!=EOF) { ti lsp(year,add); lsp.caculate(); lsp.print(); } }