我在这里有这个日期:
date1 = 2015-1-1
date2 = 2014-1-1
当我使用此代码时:
int difference = date1.Value.Month - date2.Value.Month
这将返回0.我希望实际结果为12个月,因为日期差异在一年之内。
有人帮忙吗?完全是新的。
答案 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);