在2/1/2016 - 1/31/2019的情况下:
我想输出:'3年',因为日期范围是3年。
在2/1/2016 - 3/31/2019的情况下:
我想输出:'3年零2个月',因为日期范围是3年零2个月。
我不需要担心几天,所以如果这是常态,我可以进行整理。
那里有没有c#帮助器可以帮助我这样的事情?
答案 0 :(得分:1)
对于大致计算年份和月份,您可以执行以下操作:
DateTime dayStart;
DateTime dateEnd;
TimeSpan ts = dateEnt - dateStart
int years = ts.Days / 365;
int months = (ts.Days % 365) / 31;
对于精确的计算,考虑到闰年,不同的天数等,这可能很棘手。
答案 1 :(得分:1)
你可以使用它并不真正关心闰年:
DateTime first = new DateTime(2016, 2, 1);
DateTime second = new DateTime(2019, 3, 31);
double totalMonths = (second - first).TotalDays / (365.25 / 12);
int years = (int)totalMonths / 12;
int months = (int)Math.Round(totalMonths - (years * 12), 0);