题解 | #日期差值#

日期差值

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

#include <iostream>
using namespace std;

int GetYearDay(int a,int b,int c)
{
    int sum=0;
        //如果是闰年,并且此时已经超过二月
        if(((a%4==0&&a%100!=0)||a%400==0)&&b>2) ++sum;
        //当月不用加上本月的最大值,为方便后续判断先减去一
        b--;
        while(b>0)
        {
            if(b==1||b==3||b==5||b==7||b==8||b==10||b==12) sum+=31;
            else if(b==2) sum+=28;
            else sum+=30;
            b--;
        }
        sum+=c;
        return sum;
}

int main() {
    int a, b;
    while (cin >> a >> b) { 
        //默认a>b.
        if(a<b)
        {
            int tmp=a;
            a=b;
            b=tmp;
        }
        int year1=a/10000;
        int month1=(a%10000)/100;
        int day1=a%100;
        int year2=b/10000;
        int month2=(b%10000)/100;
        int day2=b%100;
        int sum=1;
        sum+=365*(year1-year2);
        //CV下某一题的代码(日期到天数的转换)
        sum+=GetYearDay(year1,month1,day1)-GetYearDay(year2,month2,day2);
        cout<<sum<<endl;
    }
    return 0;
}

全部评论

相关推荐

06-25 21:00
门头沟学院 Java
多拆解背记一下当前的高频场景面试题,结合自己的项目经历去作答,面试通过率原来真的不会低!
牛客965593684号:小公司不就是这样的吗,面试要么是点击就送,要么就是往死里拷打,没有一个统一的标准。这个不能代表所有公司
点赞 评论 收藏
分享
fRank1e:吓得我不敢去外包了,但是目前也只有外包这一个实习,我还要继续去吗
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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