有一个“日期推算”程序,该程序的功能是输入一个日期,输出该日期前一天的日期,例如输入2024年3月15日,则输出2024年3月14日,输入2024年2月1日,则输出2024年1月31日。用c语言编写出此程序
时间: 2024-10-12 12:05:01 浏览: 4
在C语言中,你可以创建一个简单的函数来实现这个“日期推算”的功能。这里是一个基本的示例,我们将使用`struct`来表示日期,并假设月份有固定的天数(忽略闰年的情况):
```c
#include <stdio.h>
// 定义日期结构体
typedef struct {
int year;
int month;
int day;
} Date;
// 函数用于获取前一天的日期
Date prev_day(Date date) {
if (date.day == 1) { // 如果是当月的第一天
if (date.month == 1) { // 如果是一年的第一天,减去一年并设置为12月31日
date.year--;
date.month = 12;
date.day = 31;
} else {
date.day = 0; // 否则,减少一个月并调整天数到31
date.month--;
}
} else {
date.day--; // 直接减去一天
}
return date;
}
int main() {
Date input_date, result;
printf("请输入日期 (YYYY-MM-DD): ");
scanf("%d-%d-%d", &input_date.year, &input_date.month, &input_date.day);
// 调用函数并打印结果
result = prev_day(input_date);
printf("前一天的日期: %d-%02d-%02d\n", result.year, result.month, result.day);
return 0;
}
```
在这个程序中,用户通过键盘输入日期,然后`prev_day`函数会计算前一天的日期。注意,这个版本只适用于非闰年的普通情况,如果需要处理闰年,你还需要增加对二月特殊情况的判断。