21xrx.com
2024-12-23 00:01:32 Monday
登录
文章检索 我的文章 写文章
如何用C语言求两个日期之间的天数
2023-06-15 14:57:28 深夜i     --     --
C语言 日期 时间函数 结构体 计算天数

在日常生活中,经常需要计算两个日期之间的天数,比如算两次相遇的时间差,或者计算某个事件从开始到现在的天数等等。在C语言中,可以通过日期结构体和时间函数来实现日期的计算。

首先需要用结构体保存日期信息,一般以年月日的形式保存。然后可以使用time函数来获取两个日期之间的时间差,再通过计算换算出天数。

以下是求两个日期之间天数的C语言代码示例:


#include

#include

#include

struct Date

  int year;

  int month;

  int day;

;

int getDays(struct Date d1, struct Date d2){

  int days = -1;

  time_t t1, t2;

  struct tm c1, c2;

  if (d1.year > 1900 && d1.month > 0 && d1.month < 13 && d1.day > 0 && d1.day < 32 &&

    d2.year > 1900 && d2.month > 0 && d2.month < 13 && d2.day > 0 && d2.day < 32) {

    c1.tm_year = d1.year - 1900;

    c1.tm_mon = d1.month - 1;

    c1.tm_mday = d1.day;

    c1.tm_hour = 0;

    c1.tm_min = 0;

    c1.tm_sec = 0;

    t1 = mktime(&c1);

    c2.tm_year = d2.year - 1900;

    c2.tm_mon = d2.month - 1;

    c2.tm_mday = d2.day;

    c2.tm_hour = 0;

    c2.tm_min = 0;

    c2.tm_sec = 0;

    t2 = mktime(&c2);

    days = (int)((t2 - t1)/(24*3600));

  }

  return days;

}

int main(){

  struct Date d1 = 1;

  struct Date d2 = 6;

  int days = getDays(d1, d2);

  printf("Days between %d/%d/%d and %d/%d/%d: %d\n", d1.year, d1.month, d1.day, d2.year, d2.month, d2.day, days);

  return 0;

}

  
  

评论区

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