gpt4 book ai didi

java - JodaTime version1.2 计算天数

转载 作者:行者123 更新时间:2023-12-01 14:42:41 25 4
gpt4 key购买 nike

我需要弄清楚如何使用 joda time 1.2 计算两个日期之间有多少天(不,我不能使用较新的版本)。所以 Days 类还不存在。

我可以这样做几周甚至几天

(period.getWeeks()*7 + period.getDays());

但是当谈到月份时,它们都有不同的天数,所以我无法执行 period.getMonths()*30。

编辑:我也可以

(today.getDayOfYear() - oldDate.getDayOfYear());

但是当日期处于不同年份时就会出现问题

谢谢

最佳答案

看看 Joda 时间 source codeDaysdaysBetween 方法定义为:

public static Days daysBetween(ReadableInstant start, ReadableInstant end) {
int amount = BaseSingleFieldPeriod.between(start, end, DurationFieldType.days());
return Days.days(amount);
}

BaseSingleFieldPeriod 与 Days 一样,在 Joda Time 1.2 中不可用,但是查看其 source 1.2 中可用的类开始出现:

protected static int between(ReadableInstant start, ReadableInstant end, DurationFieldType field) {
if (start == null || end == null) {
throw new IllegalArgumentException("ReadableInstant objects must not be null");
}
Chronology chrono = DateTimeUtils.getInstantChronology(start);
int amount = field.getField(chrono).getDifference(end.getMillis(), start.getMillis());
return amount;
}

所有这些类和方法都在 Joda Time 1.2 中可用,因此计算两个实例之间的天数将类似于:

public static int daysBetween(ReadableInstant oldDate, ReadableInstant today) {
Chronology chrono = DateTimeUtils.getInstantChronology(oldDate);
int amount = DurationFieldType.days().getField(chrono).getDifference(today.getMillis(), oldDate.getMillis());
return amount;
}

关于java - JodaTime version1.2 计算天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15786022/

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