C# 如何设置时间跨度的格式以显示总小时数?
我想在数据库C# 如何设置时间跨度的格式以显示总小时数?,c#,timespan,C#,Timespan,我想在数据库varchar列中保存用户的工作小时数,但默认情况下,如果小时数大于24,则格式化值包括天数。我只想要总小时数 例如:如果用户今天工作10:00:00,那么明天工作13:00:00,后天工作3:30:00,那么我想要的格式化总数是26:30:00。相反,我看到的是1.2:30:00 如何获得所需的格式 另外,当我在数据库中手动保存值40:00:00,并尝试稍后将其读入TimeSpan时,我得到了一个bug 如何在数据库中以我想要的方式保存小时数,并且以后仍能将其读回TimeSpan
varchar
列中保存用户的工作小时数,但默认情况下,如果小时数大于24,则格式化值包括天数。我只想要总小时数
例如:如果用户今天工作10:00:00,那么明天工作13:00:00,后天工作3:30:00,那么我想要的格式化总数是26:30:00。相反,我看到的是1.2:30:00
如何获得所需的格式
另外,当我在数据库中手动保存值40:00:00,并尝试稍后将其读入TimeSpan
时,我得到了一个bug
如何在数据库中以我想要的方式保存小时数,并且以后仍能将其读回TimeSpan
你可以这样做:
TimeSpan time = ...;
string timeForDisplay = (int)time.TotalHours + time.ToString(@"\:mm\:ss");
您是在询问数据库中的数据还是BCL中的
TimeSpan
结构?您的问题令人困惑。正如所建议的,最好将刻度存储在数据库中,而不是格式化的时间跨度。那么你就没有这个问题了。对功能建议进行投票,然后等待十年,让MS来处理它:@Bala it get some…(40.1666663)(这是一个例子)我如何将这个40:00:00转换为timespan?我尝试了timespan x=timespan.Parse(“40:00:00”);它有一个bug@angelTimeSpan.FromHours(40.0)代码>@angel对于40.166666版本,您可以使用TimeSpan.TotalHours作为整数,然后使用TimeSpan.Minutes和TimeSpan.Seconds按您所需的方式格式化字符串。@angel,请参阅我的编辑,您可以使用FromHours()
转换40hours@Bala那么如何将“40:00:00”转换为双倍?因为它保存在数据库中…真的吗TimeSpan time=TimeSpan.FromHours(40)+TimeSpan.FromMinutes(30)
甚至更简单:TimeSpan time=newtimespan(40,30,0)
TimeSpan time = ...;
string timeForDisplay = (int)time.TotalHours + time.ToString(@"\:mm\:ss");