根据在使用新的dateTime API获取持续时间中的回答,你应该使用
Period p = Period.ofYears(1);
了解 Duration
(精确不足1天的纳秒数)和 Period
(大于1天的可变时间段)之间的区别非常重要。
例如,Duration
不会考虑闰日、夏令时或者闰秒,适用于少于一天、最多几天的时间段。
因此,应该使用 Period
。
由于不同的年份有不同数量的天数,如果您想要找到一年中的天数,就需要指定您所讨论的是哪一年。
如果您想要特定年份的天数,可以使用:
Year.of(year).length()
如果您想要一年后的日期,您可以使用
LocalDate.now().plusYears(1)
或者
LocalDate.now().plus(Period.ofYears(1))
如果你需要计算两个日期之间的天数,你可以使用
ChronoUnit.DAYS.between(start, end)
因此,要找到距离现在一年后的日期所需的天数,您可以使用以下方法:
LocalDate today = LocalDate.now();
long days = ChronoUnit.DAYS.between(today, today.plusYears(1));
如果您想查看一年的会员资格是否仍然有效,您可以使用
Period membershipLength = Period.ofYears(1)
LocalDate membershipStart = ...
LocalDate membershipEnd = membershipStart.plus(membershipLength)
LocalDate today = LocalDate.now()
boolean memberShipEnded = today.isAfter(membershipEnd)
boolean membershipValid = !membershipEnded