hh:MM格式的两个dateTime之间的差异

时间:2014-02-14 07:04:55

标签: c# asp.net

我有两个日期时间字段。现在我想用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格式转换这个值?

1 个答案:

答案 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