题解 | #日期差值#

日期差值

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

#include <iostream>
using namespace std;
int GetMonthDay(int year,int month){  //求出该年该月对应的天数
    static int arr[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
     if(month==2)
            {
                if((year%4==0&&year%100!=0)||year%400==0)
                 return arr[2]+1;
            }
            return arr[month];
    }
int GetYearDay(int year){ //求出该年对应的天数
    if((year%4==0&&year%100!=0)||year%400==0)
                 return 366;
    else
     return 365;
}
int Func(int year,int month,int day){  //计算该年该月该天距离1/1/1的天数
    int count=0;
    for(int i=1;i<year;i++)
        count+=GetYearDay(i);
    for(int i=1;i<month;i++)
        count+=GetMonthDay(year, i);
    return count+day;
}
    int main(){
        int year1,month1,day1;
        int year2,month2,day2;
        scanf("%4d%2d%2d",&year1,&month1,&day1);
        scanf("%4d%2d%2d",&year2,&month2,&day2);
        int count1=Func(year1,month1,day1);
        int count2=Func(year2,month2,day2);
        if(abs(count2-count1)==1)
            cout<<2;
        else
         cout<<abs(count2-count1)+1;
    }
// 64 位输出请用 printf("%lld")

牛客网刷题记录 文章被收录于专栏

本人认为值得记录的一些题

全部评论

相关推荐

03-10 20:17
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务