c语言 从键盘任意输入 2 个日期,编程求两日期间隔的天数。
时间: 2024-01-21 21:18:07 浏览: 132
可以使用以下步骤来编写求日期间隔天数的 C 代码:
1. 定义结构体来存储日期信息,包括年、月和日。
2. 从键盘输入两个日期。
3. 计算两个日期对应的天数。
4. 计算两个日期间隔的天数,即后一个日期对应的天数减去前一个日期对应的天数。
5. 输出两个日期间隔的天数。
以下是示例代码:
```c
#include <stdio.h>
struct Date {
int year;
int month;
int day;
};
// 计算某年某月某日是该年的第几天
int dayOfYear(int year, int month, int day) {
int days[] = {0,31,59,90,120,151,181,212,243,273,304,334};
int leap = (year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0));
return days[month-1] + day + (month > 2 ? leap : 0);
}
// 计算日期对应的天数
int days(struct Date date) {
int days = dayOfYear(date.year, date.month, date.day);
for (int y = 1; y < date.year; y++) {
days += (y % 400 == 0) || ((y % 4 == 0) && (y % 100 != 0)) ? 366 : 365;
}
return days;
}
int main() {
struct Date date1, date2;
printf("请输入第一个日期(yyyy-mm-dd):");
scanf("%d-%d-%d", &date1.year, &date1.month, &date1.day);
printf("请输入第二个日期(yyyy-mm-dd):");
scanf("%d-%d-%d", &date2.year, &date2.month, &date2.day);
int days1 = days(date1);
int days2 = days(date2);
int interval = days2 - days1;
printf("两个日期间隔的天数为:%d\n", interval);
return 0;
}
```
运行程序后,按照提示输入两个日期,即可得到它们间隔的天数。
阅读全文