1

我有起始日期(假设 2013 年 1 月 15 日)以及从开始日期过去的总天数(假设 395 天)(结束日期将为 2014 年 2 月 13 日)。现在我该如何计算这几天有多少个月。

4

1 回答 1

0

根据您对月份的定义,您可以只做Math.Ceil(days / 30)Math.Floor(days / 30)

您可以循环添加月份到from日期:

DateTime from = new DateTime(2013, 01, 15);
DateTime to = from.AddDays(395);
var months = 0;
var date = from;

while(date <= to)
{
    ++months;
    date = date.AddMonths(1);
}

一个不同的技巧是:

DateTime diff = DateTime.MinValue + (to - from);

// note: MinValue is 1/1/1 so we have to subtract...
var years = diff.Year - 1;
var months = diff.Month - 1;

months += years * 12;
于 2013-06-19T15:41:15.123 回答