Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何设置时间跨度的格式以显示总小时数?_C#_Timespan - Fatal编程技术网

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@angel
TimeSpan.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");