用c用户在程序中输入三个数据(年、月、日)程序返回输入日期后面一天的日期。年、月、日都取整数值,且满足以下条件:MONTH:1~12;DAY:1~31;YEAR:1912~2112
时间: 2023-08-31 10:40:26 浏览: 141
C语言程序:输入年月日,判断该年月日为这一年的哪一天
5星 · 资源好评率100%
### 回答1:
好的,以下是用C语言编写的代码,实现输入三个数据(年、月、日),返回输入日期后一天的日期。
```c
#include <stdio.h>
int main()
{
int year, month, day;
//输入年、月、日
printf("请输入年:");
scanf("%d", &year);
printf("请输入月:");
scanf("%d", &month);
printf("请输入日:");
scanf("%d", &day);
//判断是否为合法日期
if (year < 1912 || year > 2112 || month < 1 || month > 12 || day < 1 || day > 31)
{
printf("您输入的日期不合法,请重新输入!\n");
return 0;
}
//计算明天的日期
day++;
if ((month == 4 || month == 6 || month == 9 || month == 11) && day > 30)
{
day = 1;
month++;
}
else if (month == 2)
{
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
{
if (day > 29)
{
day = 1;
month++;
}
}
else
{
if (day > 28)
{
day = 1;
month++;
}
}
}
else if (day > 31)
{
day = 1;
month++;
}
if (month > 12)
{
month = 1;
year++;
}
//输出明天的日期
printf("明天的日期是:%d年%d月%d日\n", year, month, day);
return 0;
}
```
代码中首先读入年、月、日的值,然后判断这个日期是否合法,如果不合法则输出错误信息。如果日期合法,则根据输入日期计算出明天的日期并输出。
计算明天的日期时需要考虑到月份的天数以及闰年的情况。其中,4月、6月、9月、11月每个月只有30天,而2月份的天数则需要考虑到是否为闰年,平年的2月份只有28天,闰年的2月份有29天。
### 回答2:
可以使用C语言中的日期相关函数来实现输入日期后面一天的日期的计算。下面是一个简单的实现例子:
```c
#include <stdio.h>
#include <stdbool.h>
bool isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int main() {
int year, month, day;
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
printf("请输入日期:");
scanf("%d", &day);
if (year < 1912 || year > 2112 || month < 1 || month > 12 || day < 1 || day > 31) {
printf("输入的日期不符合要求!\n");
return 0;
}
int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (isLeapYear(year)) {
daysInMonth[1] = 29;
}
if (day < daysInMonth[month - 1]) {
day++;
} else if (month < 12) {
month++;
day = 1;
} else {
year++;
month = 1;
day = 1;
}
printf("后一天的日期为:%d年%d月%d日\n", year, month, day);
return 0;
}
```
这个程序中,首先使用`scanf`函数来输入年份、月份和日期。然后判断输入的合法性,如果不在要求的范围内,则输出提示信息。然后定义了一个包含每个月份的天数的数组`daysInMonth`,如果是闰年,则将二月份的天数修改为29。最后利用判断来增加日期,如果当前日期小于当月的天数,则直接加一天;如果当前日期是当月最后一天且不是12月,就将月份加一,日期重置为1;如果当前日期是最后一天且是12月,就将年份加一,月份和日期都重置为1。最后,输出后一天的日期。
阅读全文