NextDate问题:输入三个变量month、day和year,输出:输入日期后一天的日期,比如:输入为2000年6月9日,则该函数的输出应为2000年6月10日。年份区间为1-2050年。分别用C语言和Java语言编写以上程序
时间: 2024-10-24 14:09:25 浏览: 71
制作者aToolorg-软件测试 - NextDate函数 - 测试用例详解
NextDate问题是一个简单的日期处理问题,需要在给定月份、日期和年份的基础上计算出下一天的日期。以下是C语言和Java的实现示例:
**C语言实现:**
```c
#include <stdio.h>
struct Date {
int year;
int month;
int day;
};
struct Date next_date(struct Date date) {
if (date.month == 12) {
date.year += (date.day == 31);
date.month = 1;
date.day = 1;
} else {
date.day++;
if (date.day > 31) {
date.month++;
if (date.month > 12) {
date.month = 1;
date.year++;
}
}
}
return date;
}
int main() {
struct Date input = {2000, 6, 9};
struct Date result = next_date(input);
printf("Input: %d-%02d-%04d\n", result.year, result.month, result.day);
return 0;
}
```
**Java实现:**
```java
import java.util.Date;
public class Main {
public static void main(String[] args) {
Date inputDate = new Date(2000, Calendar.JUNE, 9); // 使用Calendar.JUNE代替手动设置6
Date nextDate = getNextDay(inputDate);
System.out.println("Input: " + nextDate.toString());
}
public static Date getNextDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, 1);
return calendar.getTime();
}
}
```
在这两个例子中,我们首先检查当前日期是否已经是当月的最大天数,如果是,就将年份增加1并将日期设为1日;如果不是,直接加1。注意Java中使用`Calendar`类更方便地进行日期操作。
阅读全文