加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

求两日期之间的相隔天数(year,month,day) C语言代码

发布时间:2020-12-16 07:47:06 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #includecstdio int isRunNian(int year); int DiJiTian(int year,int month,int day); void swap(int *a,int *b); int main() { int year1,month1,da

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

    #include<cstdio>  
    int isRunNian(int year);  
    int DiJiTian(int year,int month,int day);  
    void swap(int *a,int *b);  
    int main()  
    {  
        int year1,month1,day1;  
        int year2,month2,day2;  
        int sum=0;  
        scanf("%d%d%d",&year1,&month1,&day1);  
        scanf("%d%d%d",&year2,&month2,&day2);  
        if(year1==year2)  
        {  
            sum = DiJiTian(year1,day1) - DiJiTian(year2,day2);   
            if(sum<0)  
                sum=-sum;  
        }  
        else  
        {  
            if(year1 > year2)  
            {  
                swap(&year1,&year2);  
                swap(&month1,&month2);  
                swap(&day1,&day2);  
            }  
            int a,b,c;  
            if(isRunNian(year1))  
                a=366-DiJiTian(year1,day1);  
            else  
                a=365-DiJiTian(year1,day1);  
              
            b=0;  
            int i;  
            for(i=year1+1;i<year2;i++)  
            {  
                if(isRunNian(i))  
                    b+=366;  
                else  
                    b+=365;  
            }  
              
            c=DiJiTian(year2,day2);  
              
            sum=a+b+c;  
        }  
          
        printf("%dn",sum);  
        return 0;  
    }  
      
      
      
    /*判断闰年的函数*/  
    int isRunNian(int year)  
    {  
        if(year%400==0||(year%4==0&&year%100!=0))  
            return 1;  
        else  
            return 0;  
    }   
      
    /*判断这一天是这一年的第几天函数*/  
    int DiJiTian(int year,int day)  
    {  
        int i,sum=0;  
        for(i=1;i<month;i++)//step1  
        {  
            if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)  
                sum+=31;  
            else if(i==4||i==6||i==9||i==11)  
                sum+=30;  
            else if(i==2)  
            {  
                if(isRunNian(year))  
                    sum+=29;  
                else  
                    sum+=28;  
            }  
        }  
        sum+=day;//step2  
        return sum;//step3  
    }  
      
    /* 交换两个变量的值的函数 */  
    void swap(int *a,int *b)  
    {  
        int c;  
        c=*a;  
        *a=*b;  
        *b=c;  
    }   

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读