字符串日期计算距离今天多少天 C
字符串日期计算距离今天多少天的代码示例:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define DATE_LEN 11 // 日期字符串长度
int main() {
char date_str[DATE_LEN]; // 日期字符串
struct tm date_tm; // 日期时间结构体
time_t date_time, now_time; // 日期时间戳、当前时间戳
double diff_time; // 时间差
int diff_days; // 天数差
// 读入日期字符串
printf("请输入日期(格式:yyyy-mm-dd):");
scanf("%s", date_str);
// 解析日期字符串为时间结构体
memset(&date_tm, 0, sizeof(date_tm));
sscanf(date_str, "%d-%d-%d", &date_tm.tm_year, &date_tm.tm_mon, &date_tm.tm_mday);
date_tm.tm_year -= 1900;
date_tm.tm_mon -= 1;
date_time = mktime(&date_tm);
// 计算时间差
now_time = time(NULL);
diff_time = difftime(now_time, date_time);
// 计算天数差
diff_days = (int)(diff_time / (24 * 3600));
// 输出结果
printf("距离今天 %d 天\n", diff_days);
return 0;
}
该程序首先读入日期字符串,然后解析为时间结构体,计算当前时间戳和日期时间戳之差,再将时间差转换为天数差输出。其中,解析日期字符串的过程使用了 sscanf 函数,计算时间差的过程使用了 difftime 函数。
原文地址: https://www.cveoy.top/t/topic/xBz 著作权归作者所有。请勿转载和采集!