题解 | #打印日期#

打印日期

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

#include <iostream>
using namespace std;



class Date
{
public:
    Date(int year,int dayofYear)    
    :_year(year)        //初始化列表
    ,_dayofYear(dayofYear)
    {}
    void PrintDate()
    {
        int arr[] = {0,31,(isleapYear() ? 29:28),31,30,31,30,31,31,30,31,30,31};    //闰年day+1
        
        int month = 1;  //月份从1开始
        while(_dayofYear > arr[month])  //只要输入的天数 大于该月的天数就 累减
        {
            _dayofYear -= arr[month];
            month++;
        }
        //输出格式判断
        if(month<10)    
        {
            if(_dayofYear<10)
            {
                cout<<_year<<"-0"<<month<<"-0"<<_dayofYear<<endl;
            }
            else {
                cout<<_year<<"-0"<<month<<"-"<<_dayofYear<<endl;
            }
        }
        else if(_dayofYear<10)
        cout<<_year<<"-"<<month<<"-0"<<_dayofYear<<endl;
        else
        {
        cout<<_year<<"-"<<month<<"-"<<_dayofYear<<endl;
        }
    }
private:
    int _year;
    int _dayofYear;
    bool isleapYear()   //
    {
        return ((_year %4 == 0 && _year %100 != 0) || _year %400 == 0);
    } 

};
int main() {
    int year,day;
    cin>>year>>day;

    Date d(year,day);
    d.PrintDate();
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

03-06 18:20
门头沟学院 Java
点赞 评论 收藏
分享
Rac000n:淘天-客户运营部-AI研发工程师,智能客服方向,暑期实习招聘,欢迎联系
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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