在网格的输出中,我计算一个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对象不支持该格式字符串。
发布于 2011-11-28 06:37:44
不是有TimeSpan.Duration方法吗?我认为这将处理您正在尝试做的事情。
发布于 2009-06-19 16:14:41
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"如果timespan超过24小时,也可以正常工作。
发布于 2009-06-19 15:41:45
只需将其乘以-1或使用绝对值函数。
https://stackoverflow.com/questions/1018643
复制相似问题