gpt4 book ai didi

nodatime - 使用 `Period.Between` 和减去两个本地日期的区别

转载 作者:行者123 更新时间:2023-12-04 08:32:03 24 4
gpt4 key购买 nike

为什么结果为periodBetween.Dayssubstracted.Days不同的?
我可以看到一个 periodBetween.Months是 0 和 substracted.Months是 2,我可以看到这两个结果有何不同,但我不知道为什么 :)。

using NodaTime;
void Main()
{
var firstDate = new LocalDate(2020, 8, 1);
var secondDate = new LocalDate(2020, 10, 30);

var periodBetween = Period.Between(firstDate, secondDate, PeriodUnits.Days);
var subtracted = secondDate - firstDate;
Console.WriteLine(periodBetween.Days);
Console.WriteLine(subtracted.Days);
}

最佳答案

您的 periodBetween计算是说“这两个日期之间的时间段是多少,仅使用天数?”
您的 subtracted计算相当于调用Period.Between要么不指定任何单位,要么指定 PeriodUnits.Days | PeriodUnits.Months | PeriodUnits.Years - 换句话说,“这两个日期之间的时间段是多少,使用天、月和年?”
一个时期具有独立的年、月、日、小时、分钟等值 - 如果您使用年/月/日计算值,这不等同于仅使用天计算值。
“90 天”的期限与“2 个月零 29 天”的期限不同。在某些计算中,它们会给出相同的答案,但并非总是如此。例如,如果您将“90 天”添加到 2020 年 1 月 1 日,您将得到 2020 年 3 月 31 日……但如果您将“2 个月零 29 天”添加到 2020 年 1 月 1 日,您将得到 2020 年 3 月 30 日。

关于nodatime - 使用 `Period.Between` 和减去两个本地日期的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64971135/

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