在我的网格输出中,我计算a TimeSpan并采用它TotalHours.例如
(Eval("WorkedHours") - Eval("BadgedHours")).TotalHours
Run Code Online (Sandbox Code Playgroud)
目标是显示TotalHoursas 39:44,所以我需要将值转换7.5为07:30.这没问题......除非它是否定的!
我可以创建一个TimeSpan从对象Hours与
TimeSpan.FromHours( (Eval("WorkedHours") - Eval("BadgedHours")).TotalHours)
Run Code Online (Sandbox Code Playgroud)
如果它是否定的,我无法将其转换DateTime为使用该.ToString("HH:mm")方法,并且该TimeSpan对象不支持格式字符串.
Jar*_*red 80
有没有TimeSpan.Duration方法?我认为这会处理你想要做的事情.
SLa*_*aks 10
static string ToHMString(TimeSpan timespan) {
if (timespan.Ticks < 0) return "-" + ToHMString(timespan.Negate());
return timespan.TotalHours.ToString("#0") + ":" + timespan.Minutes.ToString("00");
}
Console.WriteLine(ToHMString(TimeSpan.FromHours(3))); //Prints "3:00"
Console.WriteLine(ToHMString(TimeSpan.FromHours(-27.75))); //Prints "-28:45"
Run Code Online (Sandbox Code Playgroud)
如果时间跨度超过24小时,这也将正常工作.
只需将其乘以-1或使用绝对值函数即可.
| 归档时间: |
|
| 查看次数: |
53395 次 |
| 最近记录: |