我有起始日期(假设 2013 年 1 月 15 日)以及从开始日期过去的总天数(假设 395 天)(结束日期将为 2014 年 2 月 13 日)。现在我该如何计算这几天有多少个月。
问问题
156 次
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 回答