栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言计算两个日期之间相差的天数和倒计时

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言计算两个日期之间相差的天数和倒计时

设计思路

先判断结束年份是否是闰年

如果是闰年则比平年多一天

如果起始时间小于结束时间则直接计算天数结果

否则就将两个输入结果调换来计算

#include 



int main()

{

    int day,month,year;

    static int sum = 0;

    static int leap = 0;

    static int lp = 0;

    int day1,month1,year1,sum1;

    printf("n请输入起始时间,格式为:年-月-日(2021-10-23)n");

    scanf("%d,%d,%d",&year,&month,&day); // 格式为:2021-10-23

    printf("n请输入结束时间,格式为:年-月-日(2021-10-23)n");

    scanf("%d,%d,%d",&year1,&month1,&day1); // 格式为:2021-10-23





    while(year < year1) // 把年份转为天数相加

    {

        if(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) //判断是否是闰年

        {

        leap = leap + 366; //是否为闰年

        }

        else{

        leap = leap + 365;

        }

    year++;
    }
    


    switch(month) // 先计算每个月份有多少天

    {

    case 1:sum=0;break;

    case 2:sum=31;break;

    case 3:sum=59;break;

    case 4:sum=90;break;

    case 5:sum=120;break;

    case 6:sum=151;break;

    case 7:sum=181;break;

    case 8:sum=212;break;

    case 9:sum=243;break;

    case 10:sum=273;break;

    case 11:sum=304;break;

    case 12:sum=334;break;

    default:printf("data error");break;

    }

    sum=sum+day; // 计算起始日期有多少天




    switch(month1) // 计算每个月份有多少天

    {

    case 1:sum1 = 0;break;

    case 2:sum1 = 31;break;

    case 3:sum1 = 59;break;

    case 4:sum1 = 90;break;

    case 5:sum1 = 120;break;

    case 6:sum1 = 151;break;

    case 7:sum1 = 181;break;
        
    case 8:sum1 = 212;break;

    case 9:sum1 = 243;break;

    case 10:sum1 = 273;break;

    case 11:sum1 = 304;break;

    case 12:sum1 = 334;break;

    default:printf("data error");break;

    }



    if(year % 400 == 0 || (year % 4 == 0 && year % 100 !=0)) {// 判断是不是闰年

        if(month1 > 2){

        lp++;

        printf("%d",lp);

        }

    }



    sum1 = sum1 + day1;

    leap = leap -sum + sum1 + lp;



    printf("两个日期之间间隔了%d天n",leap);

    return 0;
    
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/346782.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号