我有两个日期时间字段。现在我想用hh:MM格式来区分两个日期。
我使用下面的代码,但它不起作用。
DateTime dt = DateTime.Now;
DateTime dt1 = DateTime.Now.AddDays(1);
TimeSpan duration = dt1 - dt;
string str = duration.ToString(@"hh\:mm");
我想退出以上代码:24:00。 但是上面代码的输出是:1.00:00:00.2187588
那么如何用hh:MM格式转换这个值?
答案 0 :(得分:1)
长话短说,就是当你减去时,小时和分钟成分保持不变,但是,天数的差异是1.所以你使用时间差来计算时间并相应地构建你的时间。 试试这个:
DateTime dt = DateTime.Now;
DateTime dt1 = DateTime.Now.AddDays(1);
TimeSpan duration = dt1 - dt;
long durationTicks = Math.Abs(duration.Ticks / TimeSpan.TicksPerMillisecond);
long hours = durationTicks / ( 1000 * 60 * 60);
long minutes = (durationTicks - (hours * 60 * 60 *1000 )) / (1000 * 60);
System.Console.WriteLine(hours.ToString("00") + ":" + minutes.ToString("00"));
收率:
24:00