您的位置:首页 > 编程语言 > C#

C#计算两个时间的时间差,精确到年月日时分秒

2017-08-30 17:53 639 查看
喏,计算两个时间的时间差,精确到年月日时分秒

看起来比较笨的方法了,不知道有没有改进

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 + "秒";
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: