题解 | #日期累加#

日期累加

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

#include <iostream>
using namespace std;
class Date
{
    public:
         Date(int year=199 , int month = 1,int day =1)
         {
               _year = year;
               _month =month;
               _day = day;
         }
         int getMonthday(int year , int month)
        {
             if(month == 2 &&(year%4==0
             &&year%100!=0)||(year%400==0))
             {
               return 29;
             }
             return monthDay[month];
        }
       const Date& operator+=(int n)
        {
             _day = _day+n;
            while(_day> getMonthday(_year , _month))
            {
             _day = _day -  getMonthday(_year , _month);
                ++ _month;
               if(_month == 13)
               {
                    _month =1;
                    ++_year;
               }
              
            }
            return *this;
        }
    
         int _year;
         int _month;
         int _day;
       int monthDay[13] ={0,31,28,31,30,31,30,
       31,31,30,31,30,31};
};

int main() {
    int m = 0 ;
    cin>>m;
    while(m > 0)
    {
        int year =0 ,month =0 , day =0;
        int n =0;
     cin>>year>>month>>day>>n;
     Date d1(year,month,day);
     d1+=n;
     printf("%04d-%02d-%02d\n",d1._year,d1._month,d1._day);
    --m;
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

01-26 18:45
门头沟学院 Java
一天代码十万三:哥们实习再包一下吧,产出太笼统了,尽量体现业务
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务