我需要输出年、月、日中两天的差值。
通过时间跨度和减法,我只能得到天数,但是否有可能以年、月和日为单位输出。
这是我到目前为止所拥有的:
public string Leeftijdsverschil(DateTime p1, DateTime p2)
{
if (p1 > p2)
{
DateTime verschil = p1.Subtract(TimeSpan.FromTicks(p2.Ticks));
return verschil.ToString();
}
else
{
DateTime verschil = p2.Subtract(TimeSpan.FromTicks(p1.Ticks));
return verschil.ToString();
}
}
.NET 类型无法为您提供一个不错的答案,而无需编写代码来尝试一个答案并进行适当调整,但我的野田时间 http://nodatime.org项目就是为了处理这类事情而设计的。例如:
LocalDate x = new LocalDate(2013, 5, 21);
LocalDate y = new LocalDate(2014, 12, 15);
Period p = Period.Between(x, y);
Console.WriteLine("{0} {1} {2}", p.Years, p.Months, p.Days);
Result:
1 6 24
(即1年6个月24天)
如果您决定为此使用野田时间,您could只需在您的方法中执行此操作即可,使用DateTime
其他地方并在类型之间进行转换......但通常更好的是更广泛地接受野田时间。目的是让你的代码比仅仅使用更清晰DateTime
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)