题解 | #日期累加#

日期累加

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

#include <fstream>
#include <iostream>
#include <ostream>
using namespace std;

int GetMonthDay(int y, int m)
{
    int month[] = { 0, 31, 28, 31, 30, 31, 30, 31,31, 30, 31, 30, 31 };
    if (m == 2 && ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0))
        return 29;
    return month[m];
}

class Date
{
public:
    Date(int year = 0, int month = 0, int day = 0)
        :_year(year),
        _month(month),
        _day(day)
    {}

    friend Date GetDate(int n);
    friend ostream & operator<<(ostream & _cout,const Date& d);

    Date& operator++()
    {
        _day++;
        if (_day > GetMonthDay(_year, _month))
        {
            _month++;
            _day = 1;
            if (_month == 13)
            {
                _month = 1;
                _year++;
            }
        }
        return *this;
    }

    Date operator+(int n)
    {
        Date tmp =*this;
        while(n--)
        {
            ++tmp;
        }
       return tmp;
    }

private:
    int _year;
    int _month;
    int _day;
};


ostream & operator<<(ostream & _cout,const Date &d1)
{
    if(d1._month<10&&d1._day<10)
    {
        _cout << d1._year << "-" << 0 <<d1._month << "-" << 0<<d1._day ; 
    }
    else if(d1._month<10&&d1._day>=10){
        _cout << d1._year << "-" << 0 <<d1._month << "-" << d1._day ; 
    }
    else if(d1._month>=10&&d1._day<10)
    {
        _cout << d1._year << "-" <<d1._month << "-" << 0<<d1._day ; 
    }
    else if(d1._month>=10&&d1._day>=10)
    {
        _cout << d1._year << "-" <<d1._month << "-" <<d1._day ; 
    }
    return _cout;
}


int main() {
    int n1, n2;
    int m;
    cin>>m;
    while(m--)
    {
        int n;
        int year,month,day;
        cin>>year>>month>>day>>n;
        Date d(year,month,day);
        cout<<(d+n)<<endl;
    }
}

全部评论

相关推荐

07-03 11:02
中山大学 C++
字节刚oc,但距离九月秋招很近了有两段互联网实习,非腾讯字节。不敢赌转正,现在在纠结去还是不去如果实习俩月离职会有什么后果吗
阿城我会做到的:不去后悔一辈子,能否转正取决于ld的态度,只要他不卡,答辩就是走流程,个人觉得可以冲一把
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务