文章

16

粉丝

76

获赞

3

访问

10.0k

头像
日期差值 题解:C++,注释清晰,步骤较多

#include <bits/stdc++.h>
using namespace std;
struct date{
    int year,month,day;
};
int mon[13]={0,
        31,28,31,30,31,30,31,31,30,31,30,31
};
int main() {
    date d1,d2;
    while(scanf("%4d%2d%2d %4d%2d%2d",&d1.year,&d1.month,&d1.day,&d2.year,&d2.month,&d2.day)!=EOF){
        int sum=0;
        if(d1.year==d2.year){//当年数相同时
            if(d1.month==d2.month){
                sum=d2.day-d1.day+1;
            }else{
                if(d1.year%4==0&&d1.year%100!=0||d1.year%400==0)
                    mon[2]=29;
                else mon[2]=28;
                sum=mon[d1.month]-d1.day+d2.day+1;
                for(int i=d1.month+1;i<d2.month;i++)
                    sum+=mon[i];
            }
            cout<<sum<<endl;
        }else{//年数不同时
            date tmp1,tmp2;//存取d1,d2的值
            //使得tmp1始终是小的日期
            if(d1.year>d2.year) {
                tmp1.year = d2.year;
               ...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发