将类型为 (double) 的总小时数转换为格式化时间
Converting Total Hours with type (double) to formatted time
我从这段代码中得到总小时数:
string date = Request.Form[DFrom.UniqueID];
string date1 = Request.Form[DTo.UniqueID]; ;
DateTime start = DateTime.ParseExact(date, "MM/dd/yyyy hh:mm tt", null);
DateTime end = DateTime.ParseExact(date1, "MM/dd/yyyy hh:mm tt", null);
totaltime = (start - end).TotalHours;
输出将是这样的:
25.44535
我想将总小时数转换为格式化时间,例如:
44:12:00
您可能不想将其转换为 totalHours。你可以简单地 return a TimeSpan
totaltime = (start - end)
由于您已经一个TimeSpan
,您可以将其格式化为;
var ts = (start - end);
Console.WriteLine("{0:00}:{1:00}:{2:00}", ts.Days, ts.Hours, ts.Minutes); // 01:01:26
请记住,这些 Days
、Hours
和 Minutes
属性 returns 整个小时作为 int
。如果您也寻找它们的小数部分,您也可以使用它们的 TotalXXX
属性。
随着 .NET Framework 4.0,引入了 Custom TimeSpan Format Strings。如果您有此版本或更高版本,您也可以使用此自定义格式;
Console.WriteLine("{0:dd\:hh\:mm}", ts);
如果你想要 hh:mm:ss 格式,你可以这样做:
TimeSpan ts = start- end;
string st = String.Format("{0:00}:{1:00}:{2:00}", ts.Days*24+ts.Hours, ts.Minutes, ts.Seconds);
我从这段代码中得到总小时数:
string date = Request.Form[DFrom.UniqueID];
string date1 = Request.Form[DTo.UniqueID]; ;
DateTime start = DateTime.ParseExact(date, "MM/dd/yyyy hh:mm tt", null);
DateTime end = DateTime.ParseExact(date1, "MM/dd/yyyy hh:mm tt", null);
totaltime = (start - end).TotalHours;
输出将是这样的:
25.44535
我想将总小时数转换为格式化时间,例如: 44:12:00
您可能不想将其转换为 totalHours。你可以简单地 return a TimeSpan
totaltime = (start - end)
由于您已经一个TimeSpan
,您可以将其格式化为;
var ts = (start - end);
Console.WriteLine("{0:00}:{1:00}:{2:00}", ts.Days, ts.Hours, ts.Minutes); // 01:01:26
请记住,这些 Days
、Hours
和 Minutes
属性 returns 整个小时作为 int
。如果您也寻找它们的小数部分,您也可以使用它们的 TotalXXX
属性。
随着 .NET Framework 4.0,引入了 Custom TimeSpan Format Strings。如果您有此版本或更高版本,您也可以使用此自定义格式;
Console.WriteLine("{0:dd\:hh\:mm}", ts);
如果你想要 hh:mm:ss 格式,你可以这样做:
TimeSpan ts = start- end;
string st = String.Format("{0:00}:{1:00}:{2:00}", ts.Days*24+ts.Hours, ts.Minutes, ts.Seconds);