题解 | #打印日期#用C++类的构造函数自动完成

打印日期

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

用C++类的构造函数自动完成
#include<iostream>
using namespace std;
class Date{
    public:
    Date(int year,int day)
        :_day(0),_month(1),_year(year)
    { 
        int tmp=day;
        isleapyear=(!(_year % 4) && _year % 100) || !(_year % 400);
        for(int mday=getmonthday(_month);tmp>mday;mday=getmonthday(_month)){
            _month++;
            if(_month==13){
                _year++;
                _month=1;
            }
            tmp-=mday;
        }
        _day=tmp;
    printf("%04d-%02d-%02d\n", _year, _month, _day);
    }
    private:
    int getmonthday(int month){
        static int monthdayarr[]={31,28,31,30,31,30,31,31,30,31,30,31};
        return monthdayarr[month-1]+(month==2&&isleapyear?1:0);
    }
    bool isleapyear;
    int _year;
    int _month;
    int _day;
};
int main(){
    int year,day;
    while(~scanf("%d %d",&year,&day)){
        Date tmp(year,day);
    }
}
看着代码多 其实3ms 超过73%
全部评论

相关推荐

10-10 16:30
济宁学院 Java
不想做程序员:面试官:蓝桥杯三等奖?你多去两次厕所都能拿二等吧
点赞 评论 收藏
分享
迷茫的大四🐶:你这个拿去投央国企吧,投私企包过不了的
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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