获得几个月的实际差异DateTime ASP.NET MVC

时间:2015-02-25 10:16:37

标签: asp.net-mvc datetime

我在这里有这个日期:

date1 = 2015-1-1
date2 = 2014-1-1

当我使用此代码时:

int difference = date1.Value.Month - date2.Value.Month

这将返回0.我希望实际结果为12个月,因为日期差异在一年之内。

有人帮忙吗?完全是新的。

4 个答案:

答案 0 :(得分:0)

试试此代码

DateTime date1 = Convert.ToDateTime("2015-1-1");
DateTime date2 = Convert.ToDateTime("2014-1-1");
Console.WriteLine((date1.Month - date2.Month) + 12 * (date1.Year - date2.Year));

答案 1 :(得分:0)

var difference = date1.Value.Ticks - date2.Value.Ticks;
var dateDifference = new DateTime(difference);
int numberOfMonths = (dateDifference.Years * 12) + dateDifference.Months;

答案 2 :(得分:0)

你无法得到确切的结果,因为日/年可以改变,但你仍然 可以试试这个:

 //you can determine that the average month has 30.44 days (source:google)
const double daysToMonths = 30.4368499;
     DateTime date1 = Convert.ToDateTime("2015-1-1");
     DateTime date2 = Convert.ToDateTime("2014-1-1");
//round is optional here
     Double Diff = Math.Round(date1.Subtract(date2).TotalDays/daysToMonths,0);

答案 3 :(得分:-1)

我通过在我的引用中添加Microsoft.VisualBasic并使用Visual Basic中的DateDiff函数解决了这个问题。通过使用它,我不再需要手动计算日期,我只需设置间隔和2个日期,然后它就可以完美地执行。

DateAndTime.DateDiff(DateInterval.Month, (DateTime)promoevent.TargetStartDate, (DateTime)promoevent.TargetEndDate);