我需要比较两个超过24小时的TimeSpan值。 为此,我使用以下代码
string startTime = textBox1.Text;
string endTime = textBox21.Text;
TimeSpan startTimet = new TimeSpan(int.Parse(startTime.Split(':')[0]), // hours
int.Parse(startTime.Split(':')[1]), // minutes
0);
TimeSpan endTimet = new TimeSpan(int.Parse(endTime.Split(':')[0]), // hours
int.Parse(endTime.Split(':')[1]), // minutes
0);
TimeSpan duration = endTimet.Subtract(startTimet);
label29.Text = duration.ToString();
如果值不大于24H,那就没关系,但如果我的值大于24h,TimeSpan将显示为DD.HH.MM.SS。
例如:
endTimet = 32:15
startTimet = 02:00
持续时间= 1.06:15:00
我真正需要的是像HH:MM这样的正常格式,假设小时数大于24,得到预期的 30:15
有人可以帮我吗? 此致
答案 0 :(得分:2)
也许有这种解决方法:
TimeSpan duration = TimeSpan.FromHours(30);
string result = string.Format("{0}:{1}"
, duration.TotalHours
, duration.Minutes); // 30:00
答案 1 :(得分:1)
Noda Time救援!
string s1 = "123:45";
string s2 = "234:56";
DurationPattern p = DurationPattern.CreateWithInvariantCulture("H:mm");
Duration d1 = p.Parse(s1).Value;
Duration d2 = p.Parse(s2).Value;
Duration diff = d2 - d1;
string result = p.Format(diff); // "111:11"