日期计算问题 在信息系统开发中,日期的计算成为常态,利用Java程序设计解决日期相关问题变得简单,给你的问题是计算两个日期(非时间上)相隔的天数。 输入: 标准输入,输入的第一行为一个正整数N,表示需要你计算的问题数目,接下来的N行,每行有两个表示日期和时间格式的数据,两数据之间有一个空格,并且前一个日期在后一个日期的前面。 输出: 标准输出,输出两日期(非时间)之间相处的天数,每个计算结果使用一行输出,并按照输入顺序依次输出该问题的结果。 测试用例输入: 4 2021-05-31 00:00 2021-06-01 00:01 2017-01-10 08:00 2017-01-10 09:00 2014-01-05 08:30 2014-01-14 08:00 2014-03-05 16:35 2014-07-03 08:00 测试用例输出: 1 0 9 120
时间: 2024-03-10 21:47:30 浏览: 241
好的,这个问题可以使用 Java 中的日期类 SimpleDateFormat 和 Calendar 来解决。以下是具体的代码实现:
```java
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sc.nextLine();
for (int i = 0; i < n; i++) {
String[] dates = sc.nextLine().split(" ");
String date1 = dates[0];
String date2 = dates[1];
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
try {
cal1.setTime(sdf.parse(date1));
cal2.setTime(sdf.parse(date2));
} catch (Exception e) {
System.out.println("日期格式错误!");
}
long days = (cal2.getTimeInMillis() - cal1.getTimeInMillis()) / (1000 * 60 * 60 * 24);
System.out.println(days);
}
}
}
```
这段代码首先读入需要计算的问题数目 `n`,然后使用 for 循环来逐个解决每个问题。每个问题包含两个日期,我们使用 `split` 函数将其分割成两个字符串 `date1` 和 `date2`。然后使用 SimpleDateFormat 来解析日期字符串,并将其转换成 Calendar 对象。最后,我们可以使用 getTimeInMillis 函数来获得两个日期之间的毫秒数,然后将其除以 1000 * 60 * 60 * 24,就可以得到相隔的天数了。
阅读全文