题解 | 打印日期
打印日期
https://www.nowcoder.com/practice/b1f7a77416194fd3abd63737cdfcf82b
#include <iostream>
#include <iomanip>
using namespace std;
class Date{
public:
Date(int year,int month=1,int day=1)
{
_year=year;
_month=month;
_day=day;
}
int GetMonthDay()
{
int monthdays[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if((_year%4==0&&_year%100!=0)||_year%400==0)
{
if(_month==2)
{
return 29;
}
}
return monthdays[_month];
}
void ddd(int b)
{
while(b>GetMonthDay())
{
b-=GetMonthDay();
_month++;
if(_month>12)
{
_month=1;
++_year;
}
}
_day=b;
}
void Print()
{
printf("%04d-%02d-%02d\n", _year, _month, _day);
}
private:
int _year;
int _month;
int _day;
};
int main() {
int a,b;
while(scanf("%d %d",&a,&b)!=EOF)
{
Date d(a);
d.ddd(b);
d.Print();
}
return 0;
}