处理负时间跨度
在网格的输出中,我计算 TimeSpan
并获取其 TotalHours
。 例如,
(Eval("WorkedHours") - Eval("BadgedHours")).TotalHours
目标是将 TotalHours
显示为 39:44
,因此我需要将值从 7.5
转换为 07:30
。 这没问题......除非它是负数!
我可以从 Hours
创建一个 TimeSpan
对象,
TimeSpan.FromHours( (Eval("WorkedHours") - Eval("BadgedHours")).TotalHours)
如果它是负数,我无法将其转换为 DateTime
来使用 。 ToString("HH:mm")
方法,并且 TimeSpan
对象不支持格式字符串。
In my output of a grid, I calculate a TimeSpan
and take its TotalHours
. e.g.
(Eval("WorkedHours") - Eval("BadgedHours")).TotalHours
The goal is to show the TotalHours
as 39:44
, so I need to convert the value from 7.5
to 07:30
. This is no problem... unless it's negative!
I can create a TimeSpan
object from Hours
with
TimeSpan.FromHours( (Eval("WorkedHours") - Eval("BadgedHours")).TotalHours)
If it's negative, I can't convert it to a DateTime
to use the .ToString("HH:mm")
method, and the TimeSpan
object does not support the format string.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
没有
TimeSpan .Duration
方法? 我认为这可以解决您想要做的事情。Isn't there a
TimeSpan.Duration
method? I think this would handle what you are trying to do.如果时间跨度超过 24 小时,这也能正常工作。
This will also work correctly if the timespan is longer than 24 hours.
只需将其乘以 -1 或使用绝对值函数即可。
Just multiply it by -1 or use an absolute value function.
TimeSpan 类中有一个 Negate 方法。
MSDN 文档链接:
TimeSpan.Negate 方法()
There is a Negate method in the TimeSpan class.
Link to the MSDN documentation:
TimeSpan.Negate Method()
简单的解决方案是:
The simple solution would be to do:
它的工作。尝试这个
mytimespam.Negate();
its working .try this
mytimespam.Negate();
您好,我将其写入了我一直在编写的一些代码中,希望它有帮助
(结果)是一个 int 变量
(TimeSpan.FromMinutes(result))
(TimeSpan.FromMinutes(result)) < 时间跨度为零? "-" + TimeSpan.FromMinutes(结果).ToString(@"hh\:mm") : "" + TimeSpan.FromMinutes(结果).ToString(@"hh\:mm");
Hi i worked this into a bit of code i have been writing, hope it helps
(results) is an int variable
(TimeSpan.FromMinutes(result)) < TimeSpan.Zero ? "-" + TimeSpan.FromMinutes(result).ToString(@"hh\:mm") : "" + TimeSpan.FromMinutes(result).ToString(@"hh\:mm");
我检查了每个地方。但我没有得到正确的答案,为什么我用这种方式完成
I checked to every where.But i didnt get a correct answer that why i used this way to finish