c#TimeSpan将分钟转换为小时

时间:2015-10-08 06:10:37

标签: c# timespan

我将分钟转换成小时。所以,如果我有minutes = 12534。结果应为208:54。以下代码未能带来此结果。

TimeSpan spWorkMin = TimeSpan.FromMinutes(12534);
string workHours = spWorkMin.ToString(@"hh\:mm");
Console.WriteLine(workHours);

结果是16:54

如何弄清楚?

6 个答案:

答案 0 :(得分:8)

使用正确的方法是不使用ToString的{​​{1}}重载 - 因为无法显示DateTime - 但TotalHours方法:< / p>

string.Format

答案 1 :(得分:8)

var totalMinutes = 12534;
Console.WriteLine("{0:00}:{1:00}", totalMinutes / 60, totalMinutes % 60);

或者

var totalMinutes = 12534;
var time = TimeSpan.FromMinutes(totalMinutes);
Console.WriteLine("{0:00}:{1:00}", (int)time.TotalHours, time.Minutes);

请参阅https://dotnetfiddle.net/gYEsj2以使用此

答案 2 :(得分:1)

格式说明符hh将显示小时部分,而不是总小时数。您必须使用TotalHours cast into int来手动创建一个字符串,以便根据需要显示它并将分钟添加到该字符串中。

答案 3 :(得分:0)

来自MSDN文档:

  

&#34; hh&#34;自定义格式说明符输出TimeSpan :: Hours属性的值,该属性表示时间间隔中不计入其日期组件的整个小时数。

获得所需结果的一种快捷方法如下:

TimeSpan spWorkMin = TimeSpan.FromMinutes(12534);
string workHours = string.Format("{0}:{1:00}", (int)spWorkMin.TotalHours, spWorkMin.Minutes);
Console.WriteLine(workHours);

答案 4 :(得分:0)

TimeSpan spWorkMin = TimeSpan.FromMinutes(12534);
string workHours = string.Format("{0}:{1}", (int)spWorkMin.TotalHours, spWorkMin.Minutes);
Console.WriteLine(workHours);

答案 5 :(得分:0)

您需要使用TimeSpan.TotalHours属性

TotalHours属性表示整数小时,而Hours属性表示整个小时。

    TimeSpan spWorkMin = TimeSpan.FromMinutes(12534);
    string workHours = spWorkMin.ToString(@"hh\:mm");
    Console.WriteLine(spWorkMin.TotalHours);

https://dotnetfiddle.net/JRCLra