c语言:13.编写程序实现功能: 输入两个日期,输出他们之间相差多少天。(两个日期为同一年) 样例输入:2024 10 1 2024 10 7 样例输出:6 样例输入:2020 1 1 2020 12 31 样例输出:365
时间: 2024-10-05 09:02:54 浏览: 26
c语言编写程序实现两个超长正整数(每个最长80位数字)的减法运算
在C语言中,我们可以创建一个简单的函数来计算两个日期之间的天数差。这里我们假设年份有365天(非闰年),并忽略二月的特殊规则。你可以使用以下步骤实现这个功能:
```c
#include <stdio.h>
int days_in_month(int month, int year) {
switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 4:
case 6:
case 9:
case 11:
return 30;
case 2:
// 默认为非闰年
if (year % 4 != 0 || (year % 100 == 0 && year % 400 != 0))
return 28;
else
return 29; // 闰年
default:
return -1; // 无效的月份
}
}
int main() {
int day1, month1, year1, day2, month2, year2;
printf("请输入第一个日期(格式:DD MM YYYY): ");
scanf("%d %d %d", &day1, &month1, &year1);
printf("请输入第二个日期(格式:DD MM YYYY): ");
scanf("%d %d %d", &day2, &month2, &year2);
if (year1 == year2) { // 同年
int total_days = (day2 - day1); // 已经考虑了月份天数变化
for (int m = month1; m <= month2; ++m) {
if (m > month1 || (m == month1 && day1 > 1)) {
total_days += days_in_month(m, year1);
}
}
printf("两个日期之间相差 %d 天.\n", total_days);
} else {
printf("这两个日期不在同一年,无法直接计算。\n");
}
return 0;
}
```
阅读全文