21xrx.com
2024-12-23 00:44:03 Monday
登录
文章检索 我的文章 写文章
【教程】C语言计算两个日期相差天数
2023-06-15 13:36:37 深夜i     --     --
C语言 日期 相差天数 数组 闰年

  return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;

在开发中,我们可能需要计算某个事件或任务的时间长度,这时就需要计算两个日期之间相差的天数了。在C语言中实现这个功能也很简单,本文就为大家介绍一下如何用C语言求两个日期相差多少天。

首先我们需要知道每个月的天数是多少,这里我们可以借助一个数组来存储。然后通过输入两个日期,分别计算出两个日期对应年、月、日在这一年中所经过的天数,再用这两个天数做差就可以得出它们之间相差的天数了。

以下是具体实现过程的代码:


#include

int days[13] = 31; // 存储每个月的天数

int isleap(int year) // 判断是否是闰年

{

  return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;

}

int getdays(int year, int month, int day) // 计算这个日期在这一年中所经过的天数

{

  int sum = 0;

  for (int i = 1; i < month; i++) // 先计算这个日期之前的整月天数

  {

    sum += days[i];

  }

  sum += day; // 再加上这个月的天数

  if (isleap(year) && month > 2) // 如果是闰年并且月份大于2月

  {

    sum++; // 需要加上2月多出来的一天

  }

  return sum;

}

int main()

{

  int year1, month1, day1;

  int year2, month2, day2;

  printf("请输入第一个日期(年-月-日):");

  scanf("%d-%d-%d", &year1, &month1, &day1);

  printf("请输入第二个日期(年-月-日):");

  scanf("%d-%d-%d", &year2, &month2, &day2);

  int days1 = getdays(year1, month1, day1); // 第一个日期所经过的天数

  int days2 = getdays(year2, month2, day2); // 第二个日期所经过的天数

  printf("两个日期相差%d天\n", abs(days2 - days1));

  return 0;

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复