Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# hh:MM格式的两个日期时间之间的差异_C#_Asp.net - Fatal编程技术网

C# hh:MM格式的两个日期时间之间的差异

C# hh:MM格式的两个日期时间之间的差异,c#,asp.net,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:0

我有两个日期时间字段。现在我想用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。因此,你用时间差来表示刻度,并据此构建你的时间。 试试这个:

        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

嗨,谢谢,但我不想要负面的差异。那么,我怎样才能避免负面差异呢?@Hitesh:获取
durationTicks
的绝对值应该对你有用。