题解 | #打印日期#
打印日期
https://www.nowcoder.com/practice/b1f7a77416194fd3abd63737cdfcf82b
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
class Date {
public:
void Print()
{
printf("%d-%02d-%02d\n", _year, _month, _day);
}
int GetMonthDay(int year, int month)
{
int MonthDayArray[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
if ((month == 2) && ((year % 4 == 0) && (year % 100 != 0)
|| (year % 400 == 0)))
{
return 29;
}
return MonthDayArray[month];
}
Date &operator+= (int day)
{
_day += day;
while (_day > GetMonthDay(_year,_month))
{
_day -= GetMonthDay(_year, _month);
++_month;
if (_month == 13)
{
_year += 1;
_month = 1;
}
}
return *this;
}
Date(int year = 1,int month = 1,int day = 0)
:_year(year)
,_month(month)
,_day(day)
{}
private:
int _year;
int _month;
int _day;
};
int main()
{
int year = 0, Daysum = 0;
while( scanf("%d %d", &year, &Daysum) != EOF )
{
Date d1(year);
d1 += Daysum;
d1.Print();
}
}
查看15道真题和解析