题解 | #计算日期到天数转换#

计算日期到天数转换

http://www.nowcoder.com/practice/769d45d455fe40b385ba32f97e7bcded

1、 先判断此年是否为闰年,闰年比平年多一天,如果为闰年flag = 1, ret += 1
2、计算第n个月的天数,先计算 n - 1月的天数,循环遍历数组 ret += array[i];
3、一种额外情况,若此年份为2000/2/1就不再考虑ret+=1了,直接ret += day

#include<iostream>
using namespace std;
int main()
{
    static int array[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
    int year, month, day;
    int ret = 0, flag = 0;
    while (cin >> year >> month >> day)
    {
        if (year < 0 || month > 12 || day < 1 || day > 31 || ((month == 2) && day > 29))
        {
            break;
        }
        int i = 0;
        while (i < month - 1)
        {

            ret += array[i];
            i++;
        }
        if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
            flag = 1;
        if(day > 1)
            ret += flag + day;
        ret += day;

        cout << ret << endl;
    }




}
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 11:29
点赞 评论 收藏
分享
06-01 21:50
已编辑
天津理工大学 Java
点赞 评论 收藏
分享
07-10 12:17
已编辑
商丘师范学院 Java
后来123321:别着急,我学院本大二,投了1100份,两个面试,其中一个还是我去线下招聘会投的简历,有时候这东西也得看运气
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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