Asp.net mvc 获取月份的实际差异DateTime ASP.NET MVC

Asp.net mvc 获取月份的实际差异DateTime ASP.NET MVC,asp.net-mvc,datetime,Asp.net Mvc,Datetime,我在这里有以下日期: date1 = 2015-1-1 date2 = 2014-1-1 当我使用此代码时: int difference = date1.Value.Month - date2.Value.Month 这将返回0。我希望实际结果是12个月,因为日期差在一年之内 有人帮忙吗?这是一个全新的概念。试试这段代码 DateTime date1 = Convert.ToDateTime("2015-1-1"); DateTime date2 = Convert.ToDateTime(

我在这里有以下日期:

date1 = 2015-1-1
date2 = 2014-1-1
当我使用此代码时:

int difference = date1.Value.Month - date2.Value.Month
这将返回0。我希望实际结果是12个月,因为日期差在一年之内

有人帮忙吗?这是一个全新的概念。

试试这段代码

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));

您无法获得确切的结果,因为日期/年份可能会发生变化,但您仍然可以 你可以试试这个:

 //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);

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

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

date1和date2是DateTime对象吗?由于date1.value.Month的值为1,而date2.value.Month的值又是1,因此1-1可能是0,因此它的正确值可能重复:-此链接将对您有很大帮助。[按此][1][1]:
DateAndTime.DateDiff(DateInterval.Month, (DateTime)promoevent.TargetStartDate, (DateTime)promoevent.TargetEndDate);