题解 | #打印日期#

打印日期

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")

全部评论

相关推荐

2024-12-21 10:42
已编辑
江西软件职业技术大学 Java
新宿站不停:该提升学历就提升学历,菜了就多练。没事找牛马公司虐自己是吧? 谁没事说自己“经验少”,这不自己把自己塞剎鼻hr嘴里找🐴吗
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
2024-12-30 18:02
程序员牛肉:1.可以标记一下自己的学校是985,有一些hr可能没想到你这个院校是985的。 2.简历所呈现出来的能力还是有点差的,苍穹外卖+黑马点评。这在java技术域里面也就是刚学三四个月的样子,大厂现在招人少,小厂又更加希望你能直接过来干活。就你简历上呈现出来的能力,确实是有点难找,肉眼可见的不懂技术。 第一个项目中:简单的使用redis也算是亮点嘛?使用jwt,threadlocal也算是亮点?你不就是调了几个包嘛?Nginx作为服务器也能写出来,这不是前端的活嘛? 第二个项目中:分布式锁+mq消息队列+Lua队列。真没啥好问的。属于面试官看一眼就阳痿的简历,没有任何想提问的欲望。 我给你建议是好好的挖一挖这个项目吧,其实苍穹外卖和黑马点评这两个项目很不错了,只不过是太烂大街了导致面试官没啥问的兴趣,所以不太推荐写简历上。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务