我将分钟转换成小时。所以,如果我有minutes = 12534
。结果应为208:54
。以下代码未能带来此结果。
TimeSpan spWorkMin = TimeSpan.FromMinutes(12534);
string workHours = spWorkMin.ToString(@"hh\:mm");
Console.WriteLine(workHours);
结果是16:54
。
如何弄清楚?
答案 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);
答案 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);