仅将分钟转换为小时

时间:2018-01-15 09:09:12

标签: c# timespan

我正试图解决这个问题:

我有大量的会议记录,我想将它们转换为小时,当我尝试使用TimeSpan时,它总是会显示几天和几小时。

我的示例代码:

double minutes = 2000 ;
TimeSpan hours = TimeSpan.FromMinutes(minutes);
label1.Text = hours.ToString(@"hh\:mm");

输出结果 09:20 ,但我想要这个结果 33:20

如何转换分钟以获得确切的小时数?

5 个答案:

答案 0 :(得分:15)

此代码会生成您要求的33:20结果:

double minutes = 2000;
TimeSpan ts = TimeSpan.FromMinutes(minutes);
var res = $"{(int)ts.TotalHours}:{ts.Minutes}";

答案 1 :(得分:8)

您需要在TotalHours对象上使用TimeSpan

string.Format("{0}:{1}",
    (int) hours.TotalHours,
    hours.Minutes);

答案 2 :(得分:1)

另一种可能性是使用000格式化字符串以组合格式截断

double minutes = 2000;

// 2000 -> 33:20
// 1808 -> 30:08
//    8 -> 0:08
label1.Text = $"{minutes/60:0}:{minutes%60:00}";

如果minutes可以否定,则应添加Math.Abs

// -2000 -> -33:20
label1.Text = $"{minutes/60:0}:{Math.Abs(minutes)%60:00}";

答案 3 :(得分:0)

手动操作并使用

string.Format("{0:D2}:{1:D2}",(int)minutes/60, (int)minutes%60)

或没有施法:

string.Format("{0:00}:{1:00}", minutes/60, minutes%60)

由于C#6带字符串插值:

$"{minutes/60:00}:{minutes%60:00}"

答案 4 :(得分:0)

public static void Main()
{
    //assigning values to variable
    double minutes = 2000;
    TimeSpan tspan = TimeSpan.FromMinutes(minutes); //converting minutes to timespan
    string res1 = (int)tspan.TotalHours +" Hours " + tspan.Minutes +" Minutes"; 

    string res2= (int)tspan.TotalHours + ":"+tspan.Minutes; 

    string res3= Convert.ToInt32(tspan.TotalHours)  + "."+tspan.Minutes +" Hours"; 

    Console.WriteLine(res1);
    Console.WriteLine(res2);
    Console.WriteLine(res3);
}

输出:

33 Hours 20 Minutes
33:20
33.20 Hours