减去大于24H的TimeSpan
本文关键字:TimeSpan 24H 大于 | 更新日期: 2023-09-27 18:29:11
我需要比较两个大于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,那也没关系,但如果我的值大于24小时,TimeSpan将显示为DD.HH.MM.SS.
例如:
endTimet=32:15
startTimet=02:00
持续时间=1.06:15:00
我真正需要的是像HH:MM这样的正常格式,假设小时数大于24,得到预期的30:15
有人能帮我吗?问候
也许有了这个解决方法:
TimeSpan duration = TimeSpan.FromHours(30);
string result = string.Format("{0}:{1}"
, duration.TotalHours
, duration.Minutes); // 30:00
野田是时候救援了!
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"