有没有办法在Month中获得两个日期之间的差异。 这一天我想要小数。
EX:
First Date : 2010-12-20
Second Date : 2011-12-30
这就像这些日期之间的1个月和10天。
差异应该给我:1.33
DateTime dt = new DateTime();
dt = Convert.ToDateTime("2011-12-30"); ;
DateTime dt2 = new DateTime();
dt2 = Convert.ToDateTime("2010-12-20");
int monthDiff = System.Data.Linq.SqlClient.SqlMethods.DateDiffMonth(dt,dt2);
答案 0 :(得分:1)
您需要先计算整月的数量。然后在一个月内将天数添加为一小部分天。如果我们一个月工作30天,可能是:
int wholeMonthsDiff = ((date2.Year * 12) + date2.Month) - ((date1.Year * 12) + date1.Month);
if (date2.Day < date1.Day)
wholeMonthsDiff--;
var diff = date2 - date1.AddMonths(wholeMonthsDiff);
double monthsDifference = wholeMonthsDiff + (diff.Days / 30d);
答案 1 :(得分:1)
您可以使用VisualBasic-Namespace中的DateDiff(同样在使用C#时):
<强> VB.Net 强>
Dim monthsTotal As Double = DateDiff("m", dt, dt2) + _
(dt2.Day - dt.Day) / DateDiff("d", dt2, DateAdd("m", 1, dt2))
<强> C#强>
double monthsTotal = DateAndTime.DateDiff("m", dt, dt2) + (dt2.Day - dt.Day) / DateAndTime.DateDiff("d", dt2, DateAndTime.DateAdd("m", 1, dt2));
顺便说一句,您的示例日期的差异是1年10天而不是1个月和10天。