gpt4 book ai didi

java.time.Period ,除以周期会给出错误的结果

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

我尝试使用java.time.Period,结果与我手动计算的结果相差了三天。这里奇怪的是,当我将时间段分为两个时间段时,结果与我的手动计算相符。

第二种方法就像我手动计算周期一样。

我是不是漏掉了什么?日历算术有标准方法或算法吗? java.time.Period 使用的算法是什么?

import java.time.LocalDate;
import java.time.Period;
import java.time.temporal.ChronoUnit;

public class test2 {

public static void main(String[] args) {

LocalDate d1 = LocalDate.of(2014, 2, 14);
LocalDate d2 = LocalDate.of(2017, 8, 1);

Period p = Period.between(d1, d2);

//using period between the two dates directly
System.out.println("period between " + d1.toString() + " and " + d2.toString() + " is " + p.getYears()
+ " years " + p.getMonths() + " months " + p.getDays() + " Days");

//dividing the period into two parts
p = Period.between(LocalDate.of(2014, 3, 1), d2);

System.out
.println("period between " + d1.toString() + " and " + d2.toString() + " is " + p.getYears() + " years "
+ p.getMonths() + " months " + d1.until(LocalDate.of(2014, 3, 1), ChronoUnit.DAYS) + " Days");

}
}

最佳答案

您在这里执行两个不同的操作:

Period p = Period.between(d1, d2)

为您提供了一种格式良好的方式来输出这些日期之间的差异(您已正确使用格式选项)。

d1.until(d2, ChronoUnit.DAYS) 

会给你相同的 - 但格式不太好(基本上它只是给你 LocalDates 之间的天数)。

关于java.time.Period ,除以周期会给出错误的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45905012/

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