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

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

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

                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 + "秒";

 

posted @ 2017-08-30 17:53  Micmacs  阅读(1253)  评论(0编辑  收藏  举报