gpt4 book ai didi

c# - C# 中两个日期之间的差异

转载 作者:太空宇宙 更新时间:2023-11-03 18:32:34 26 4
gpt4 key购买 nike

在 senario 中,我需要找出两个日期之间的差异。例如,开始日期是 01/01/2012,截止日期是 01/10/2013。我需要得到 1.9 年的输出。

int tDays=(ToDate.Subtract(FromDAte).Days+1);
int years = tDays / 365;
int months = (tDays % 365) / 31;

但是如果是闰年,这个计算是错误的。

最佳答案

我的 Noda Time库正是为这类事情而构建的:

LocalDate start = new LocalDate(...);
LocalDate end = new LocalDate(...);
Period period = Period.Between(start, end);
Console.WriteLine("{0} years, {1} months, {2} days",
period.Years, period.Months, period.Days);

请注意,这将处理月份并不总是相同长度的事实 - 例如,2013 年 2 月 1 日至 3 月 1 日(28 天)== 1 个月,而 3 月第一至3 月 29 日(也是 28 天)== 0 个月零 28 天。

这会让你得到几个月、几年和几天的时间——根据你的例子,我不确定你从哪里得到“1.9”,除非你使用的是“years.months”,我强烈推荐 反对,因为看起来你的意思是“将近 2 年”。

关于c# - C# 中两个日期之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20094655/

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