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

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

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

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

 设计思路

1、比较起始和结束的年份大小,起始年是否大于结束年,如果起始时间大于输入的结束时间,则把两个时间(年月日)互换值,再计算两个时间相差的天数。

2、判断是否起始时间小于结束时间,直接计算两个时间相差的天数。

3、判断是否为闰年(闰年是366天,平年是365天)。

流程图如下

                    

 代码如下

#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/352370.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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