【发布时间】:2017-03-02 20:53:26
【问题描述】:
DateTime dt1 = DateTime.Parse(label1.Text);
DateTime dt2 = DateTime.Parse(label2.Text);
TimeSpan ts1 = dt2 - dt1;
DateTime dt3 = DateTime.Parse(label3.Text);
DateTime dt4 = DateTime.Parse(label4.Text);
TimeSpan ts2 = dt4 - dt3;
TimeSpan workTime = ts1 + ts2;
label5.Text = workTime.TotalHours.ToString();
所以我的问题是如何修改此代码 sn-p 以便将其输出的数字从十进制转换为“hh:mm”?
【问题讨论】:
-
通过使用
ToString("hh:mm")? -
@HimBromBeere 差不多。你需要转义
:。 -
@PatrickHofman 这不正确,因为它不会显示 total 小时。如果时间跨度为 1 天 2 小时 - 它将格式化为“02:00”,而不是“26:00”(我认为 OP 想要)。
-
@HimBromBeere 你必须将
:转义为ToString("hh\\:mm")或ToString(@"hh\:mm")。如果我们知道workTime不会超过一天,这确实是最简单的方法。 -
@Jon Hanna 不会超过一天。事实上,它正好是八小时。但是如果我工作的时间比那个时间长,我希望程序显示加班时间。
标签: c#