输入一个以前日期,日期是年月日。计算到以前的日期到今天的天数。用C语言代码实现
时间: 2024-04-16 12:24:23 浏览: 126
第一章 日期转换小工具.pptx
以下是用C语言实现计算日期差距的代码示例:
```c
#include <stdio.h>
// 判断是否为闰年
int isLeapYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return 1;
}
return 0;
}
// 计算某年某月的天数
int getDaysOfMonth(int year, int month) {
int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (month == 2 && isLeapYear(year)) {
return 29;
}
return days[month - 1];
}
// 计算给定日期到今天的天数
int calculateDays(int year, int month, int day) {
// 获取当前日期
time_t now = time(NULL);
struct tm *current_time = localtime(&now);
int current_year = current_time->tm_year + 1900;
int current_month = current_time->tm_mon + 1;
int current_day = current_time->tm_mday;
// 计算天数差距
int days = 0;
// 计算年份差距
for (int i = year; i < current_year; i++) {
days += isLeapYear(i) ? 366 : 365;
}
// 计算月份差距
for (int i = 1; i < month; i++) {
days += getDaysOfMonth(year, i);
}
days += day; // 加上给定日期的天数
days += getDaysOfMonth(current_year, current_month) - current_day; // 加上今天之前的天数
return days;
}
int main() {
int year, month, day;
printf("请输入以前的日期(年 月 日):");
scanf("%d %d %d", &year, &month, &day);
int days = calculateDays(year, month, day);
printf("距离今天的天数为:%d\n", days);
return 0;
}
```
您可以根据实际需要使用该代码,输入以前的日期(年 月 日),然后计算出距离今天的天数。
阅读全文