gpt4 book ai didi

java - 计算 Java 中两个日期或日历对象之间的天数

转载 作者:行者123 更新时间:2023-11-30 07:25:42 24 4
gpt4 key购买 nike

因此,对于作业,我们必须使用 JDK Date 或 Calendar 对象来表示我们正在设计的系统中的日期(否则我将使用另一个库)。对于一个函数,我需要确保从输入日期到当前日期至少已经过去了一定的年数。我编写了以下方法来尝试计算两个 Calendar 对象之间的天数:

public static int daysSince(Calendar pastDate) {
Calendar presentDate = Calendar.getInstance();

int daysSince = 0;

while (pastDate.before(presentDate)) {
pastDate.add(Calendar.DAY_OF_MONTH, 1);
daysSince++;
} return daysSince;
}

但是,此方法返回的结果似乎总是比两个日期之间的实际天数少 30 天,我似乎不明白为什么?例如,它说 3/25/2016 和 4/25/2016 之间只有一天。我错过了什么?

最佳答案

您的代码大部分都可以工作( proof )。我怀疑你的测试数据有问题。

For example, it says there is only one day between 3/25/2016 and 4/25/2016.

我怀疑您错误地创建了测试日期 (3/25/2016)。请记住,MONTH以 0 开头,因此要创建 3/25/2016,您需要:

past.set(Calendar.DAY_OF_MONTH, 25);
past.set(Calendar.MONTH, 2); // NOTE THE 2
past.set(Calendar.YEAR, 2016);

我怀疑您在需要 2 的地方使用了 3,而您看到的这一天是因为您的测试日期是午夜,而您当前的日期不是。

除此之外,您可能希望更好地处理时间,该代码可以工作。

关于java - 计算 Java 中两个日期或日历对象之间的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36837338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com