喏,计算两个时间的时间差,精确到年月日时分秒
看起来比较笨的方法了,不知道有没有改进
DateTime d1 = new DateTime(2016, 4, 1, 0, 0, 0);
DateTime d2 = new DateTime(2017, 3, 31, 0, 0, 0);
int yearTick = 0;
while (d1.AddYears(yearTick) <= d2)
{
if (d1.AddYears(yearTick + 1) > d2)
break;
yearTick++;
}
int monthTick = 0;
while (d1.AddMonths(monthTick) <= d2)
{
if (d1.AddMonths(monthTick + 1) > d2)
break;
monthTick++;
}
int month = yearTick > 0 ? monthTick % (yearTick * 12) : monthTick;
DateTime d3 = d1.AddYears(yearTick).AddMonths(month);
TimeSpan ts = d2.Subtract(d3);
lblMsg.Text = yearTick + "年" + month + "月" + ts.Days + "天" + ts.Hours + "时" + ts.Minutes + "分" + ts.Seconds + "秒";