仅将分钟转换为小时
Converting minutes to hours only
我正在尝试解决这个问题:
我有很多分钟,我只想将它们转换为小时,当我尝试使用 TimeSpan
时,它总是显示天数和小时数。
我的示例代码:
double minutes = 2000 ;
TimeSpan hours = TimeSpan.FromMinutes(minutes);
label1.Text = hours.ToString(@"hh\:mm");
输出结果是09:20但是我想要这个结果33:20
如何将分钟转换为准确的小时数?
手动完成并使用
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}"
您需要在 TimeSpan
对象上使用 TotalHours
。
string.Format("{0}:{1}",
(int) hours.TotalHours,
hours.Minutes);
这段代码产生了您要求的 33:20
结果:
double minutes = 2000;
TimeSpan ts = TimeSpan.FromMinutes(minutes);
var res = $"{(int)ts.TotalHours}:{ts.Minutes}";
另一种可能性是使用 0
和 00
格式化字符串来组合 formatting 和 truncating:
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}";
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
我正在尝试解决这个问题:
我有很多分钟,我只想将它们转换为小时,当我尝试使用 TimeSpan
时,它总是显示天数和小时数。
我的示例代码:
double minutes = 2000 ;
TimeSpan hours = TimeSpan.FromMinutes(minutes);
label1.Text = hours.ToString(@"hh\:mm");
输出结果是09:20但是我想要这个结果33:20
如何将分钟转换为准确的小时数?
手动完成并使用
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}"
您需要在 TimeSpan
对象上使用 TotalHours
。
string.Format("{0}:{1}",
(int) hours.TotalHours,
hours.Minutes);
这段代码产生了您要求的 33:20
结果:
double minutes = 2000;
TimeSpan ts = TimeSpan.FromMinutes(minutes);
var res = $"{(int)ts.TotalHours}:{ts.Minutes}";
另一种可能性是使用 0
和 00
格式化字符串来组合 formatting 和 truncating:
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}";
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