文章

7

粉丝

0

获赞

36

访问

513

头像
日期差值 题解:
P1290 上海交通大学/西北工业大学机试题
发布于2026年3月16日 21:07
阅读数 159

#include <bits/stdc++.h>
using namespace std;

int f[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

bool isLeapYear(int y){
    if(y%400==0 ||(y%4==0&&y%100!=0))
        return true;
    return false;
}

int main()
{
    int y1,m1,d1,y2,m2,d2;
    while(scanf("%4d%2d%2d%4d%2d%2d",&y1,&m1,&d1,&y2,&m2,&d2)!=EOF){
        int ans=0,ans1=d1,ans2=d2;
        for(int i=1;i<m1;i++)
            ans1+=f[i];
        if(isLeapYear(y1))
            ans1+=1;
        for(int i=1;i<m2;i++)
            ans2+=f[i];
        if(isLeapYear(y2))
            ans2+=1;
        for(int i=y1;i<y2;i++){
            ans+=365;
            if(isLeapYear(i))
                ans+=1;
        }
        ans=ans-ans1+ans2+1;
        cout<<ans<<endl;
    }
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发