题解 | #打印日期#

打印日期

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

#include<iostream>
#include<string>
using namespace std;
int main()
{
    int year, day, month, _day;
    int* m = new int[12]{ 31,28,31,30,31,30,31,31,30,31,30,31 };
    while (cin >> year >> day) {
        bool r = false;
        month = 0;
        if ((year % 4 == 0 && year % 100) || year % 400 == 0)
            r = true;
        for (int i = 1; i <= 12; ++i) {
            if ((i != 2 && day > m[i - 1]) || (r && i == 2 && day > 29) || (i == 2 && !r && day > m[i - 1])) {
                month = i;
                day -= ((r == true && i == 2 )? (m[i - 1] + 1): m[i - 1]);
                _day = day;
            }
            else {
                if (day != 0) {
                    month += 1;
                    _day = day;
                }
                break;
            }
        }
        string yearstr = to_string(year);
        cout << yearstr << "-" << ((to_string(month).size() == 1) ? ("0" + to_string(month)) : (to_string(month))) << "-" << ((to_string(_day).size() == 1) ? ("0" + to_string(_day)) : (to_string(_day))) << endl;
    }
}
全部评论

相关推荐

09-25 10:34
东北大学 Java
多面手的小八想要自然醒:所以读这么多年到头来成为时代车轮底下的一粒尘
点赞 评论 收藏
分享
10-09 00:50
已编辑
长江大学 算法工程师
不期而遇的夏天:1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务