我从TimeSpan.TotalHours
24,75小时开始。
我怎样才能将其转换为完整而非圆满小时(= 24)加上分钟(0,75小时= 45分钟)?所以结果应该是小时= 24和分钟= 45
我尝试将其转换为字符串并生成子字符串,但我想知道是否有比这更好的方法。
string test = Reststunden.TotalHours.ToString().Substring(Reststunden.TotalHours.ToString().IndexOf(","),3).Replace(",", "");
double Minuten = Convert.ToInt16(test) * 0.6;
答案 0 :(得分:5)
怎么样:
var ts = TimeSpan.FromHours(24.75);
var h = System.Math.Floor(ts.TotalHours);
var m = (ts.TotalHours - h) * 60;
甚至:
var h = (int) (ts.TotalMinutes / 60);
var m = ts.TotalMinutes % 60;
答案 1 :(得分:3)
通过强制转换适当地计算总小时数,然后使用int hours = (int) timeSpan.TotalHours;
int minutes = timeSpan.Minutes;
属性:
TimeSpan
如果你有一个负面的{{1}},你应该考虑一下你想要的结果并添加适当的测试 - 你可能会发现它并没有做你想做的事情上面的简单代码。
答案 2 :(得分:0)
我需要以以下格式HH:mm显示总时数和分钟数。 在其他答案的帮助下,我得出了以下结果:
var end = DateTime.Now;
var duration = end - StartUpTime;
var h = (int)(duration.TotalMinutes / 60);
var m = (int)(duration.TotalMinutes % 60);
var text = $"{h:D2}:{m:D2}";