我有一个分钟值,我希望有两个字符串值,一个是多少小时,另一个是分钟,例如:
价值 - 121分钟
string hours = 2
字符串分钟= 1
价值 - 58分钟
字符串小时= 0
字符串分钟= 58
我如何在C#中解决这个问题?
答案 0 :(得分:34)
var span = System.TimeSpan.FromMinutes(121);
var hours = ((int)span.TotalHours).ToString();
var minutes = span.Minutes.ToString();
ToString()是因为你要求输入字符串值...
TotalHours是TimeSpan中的完整小时数,它们可以超过24小时(而“小时”字段最多为24小时)
哦,第二个想法:为什么要使用TimeSpan而不是自己计算?因为TimeSpan已经调试过了经过微软的测试,它有一个很好的干净界面(查看代码,你可以轻松地看到它们是什么,而无需精神上的计算),它很容易扩展到更多的解决方案。 (请在几秒钟内输入?使用TimeSpan.FromSeconds()。想要几天?使用span.TotalDays ...)
<强> 更新 强>
我刚刚在答案中注意到错误:TotalHours返回所有小时的小数值,因此我们必须在将其转换为字符串之前将其截断为整数。
答案 1 :(得分:8)
使用Timespan结构及其Parse方法。
答案 2 :(得分:2)
int value = 121;
int hours = value / 60; // 2
int minutes = value % 60; // 1
string strHours = hours.ToString();
string strMinutes = minutes.ToString();
答案 3 :(得分:1)
int value = 121;
int hours = value / 60;
int minutes = value % 60;
答案 4 :(得分:0)
int value = 121;
TimeSpan timeSpan = TimeSpan.FromMinutes(value);
// gives you the rounded down value of 2
int hours = timeSpan.Hours;
// gives you the minutes left of the hour
int minutes = value - (hours * 60);