题解 | #打印日期#

打印日期

https://www.nowcoder.com/practice/b1f7a77416194fd3abd63737cdfcf82b

#include <iostream>
#include <iterator>
using namespace std;

class date
{
public:
  int _year;
  int _month;
  int _day;

public:
date(int year=1999,int month=01 , int day =01)
{
        this->_year = year;
		this->_month = month;
		this->_day = day;
}
date(const date& d2)
	{
		this->_year = d2._year;
		this->_month = d2._month;
		this->_day = d2._day;
	}
int get_Month_day(int year, int month)
	{
		int month_day[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
		if (month==2 && (year % 100 != 0 && year % 4 == 0) 
			|| year % 400 == 0)
		{
			month_day[2] = 29;
		}
		return month_day[month];
	}

    date& operator+=(int day)
	{ 
		_day = _day + day;
		while (_day > get_Month_day(_year,_month))
		{
			_day = _day - get_Month_day(_year, _month);
			++_month;
			if (_month>12)
			{
				++_year;
				_month = 01;
			}
		}
		return *this;
	}
void Print()
{
if(_month<10 && _day<10)
{
     cout<<_year<<"-"<<0<<_month<<"-"<<0<<_day<<endl;
}
else if(_month<10 &&_day>=10)
{
     cout<<_year<<"-"<<0<<_month<<"-"<<_day<<endl;
}
else if(_month>=10 &&_day<10)
{
 cout<<_year<<"-"<<_month<<"-"<<0<<_day<<endl;
}
else {
 cout<<_year<<"-"<<_month<<"-"<<_day<<endl;
   }
}


};
int main() {
    int a, b;
     date d1;
    while (cin >> a >> b) { // 注意 while 处理多个 case
    d1._year = a;
    while( b > 1 )
    {
    d1+=1;
    --b;
    }
    }
   d1.Print();
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

SinyWu:七院电话面的时候问我有没有女朋友,一听异地说你赶紧分。我:???
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务