使用c语言编写输入今天的日期,输出昨天的日期。 提示:每年的1月、3月、5月、7月、8月、10月、12月有31天,4月、6月、9月、11月有30天,闰年的2月有29天,非闰年的2月是28天。闰年的年号,能被4整除但不能被100整除,或者能被400整除。
时间: 2023-12-28 13:18:08 浏览: 126
以下是使用C语言编写的代码,可以输入今天的日期,输出昨天的日期:
```c
#include <stdio.h>
int is_leap_year(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return 1; // 是闰年
} else {
return 0; // 不是闰年
}
}
int main() {
int year, month, day;
printf("请输入今天的日期(格式为yyyy-mm-dd):");
scanf("%d-%d-%d", &year, &month, &day);
// 计算昨天的日期
if (day > 1) {
day--;
} else {
if (month == 3) {
// 判断是否是闰年
if (is_leap_year(year)) {
day = 29;
} else {
day = 28;
}
} else if (month == 1) {
day = 31;
month = 12;
year--;
} else if (month == 5 || month == 7 || month == 10 || month == 12) {
day = 30;
month--;
} else {
day = 31;
month--;
}
}
printf("昨天的日期是:%d-%02d-%02d\n", year, month, day);
return 0;
}
```
在这个程序中,我们首先定义了一个 `is_leap_year` 函数,用于判断某一年是否是闰年。然后,我们读入今天的日期,并根据输入的日期计算昨天的日期。如果今天的日期不是本月的第一天,则昨天的日期就是今天的日期减去1。否则,我们需要根据本月的天数和是否是闰年来计算昨天的日期。最后,我们输出昨天的日期。
阅读全文