从Timespan Totalhours和Minutes中提取

时间:2016-03-23 12:39:18

标签: c# timespan

我从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;

3 个答案:

答案 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}";