21xrx.com
2025-03-25 19:41:35 Tuesday
文章检索 我的文章 写文章
如何用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;
}

  
  

评论区