【发布时间】:2013-12-19 09:54:16
【问题描述】:
我尝试做的是计算两个日期之间的年数、月数和天数。 不幸的是,没有 .NET Framework 的方法可以做到这一点。
我所做的基本上如下: http://www.codeproject.com/Articles/28837/Calculating-Duration-Between-Two-Dates-in-Years-Mo
从所述网站的 cmets 中进行了一些改编:
var monthDay = new[] { 31, 31, -1, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
日计算:
if (fromDate.Day > toDate.Day)
{
increment = monthDay[toDate.Month - 1];
}
if (increment == -1)
{
increment = DateTime.IsLeapYear(toDate.Year) ? 29 : 28;
}
所以我有以下效果:
日期1:1979-01-30
日期2:2013-03-01
输出为:34 Years, 1 Month, -1 Day
预期输出为:34 年 1 个月 1 天
这种效果每次都会发生,Date2 是三月的日期。
你知道这个计算有什么问题吗? 或者您知道更好的解决方案如何达到预期的效果?
提前致谢
PS:我知道你可以计算两个日期之间的天数,但我需要的是完成的年数、完成的月数和完成的天数
【问题讨论】: