我有两个字符串变量,例如 StartTime 和 EndTime。我需要通过用 StartTime 减去 EndTime 来计算 TotalTime。
StartTime 和 EndTime 的格式如下:
StartTime = "08:00 AM";
EndTime = "04:00 PM";
TotalTime(小时和分钟格式)。如何使用 C# 计算这个?
我有两个字符串变量,例如 StartTime 和 EndTime。我需要通过用 StartTime 减去 EndTime 来计算 TotalTime。
StartTime 和 EndTime 的格式如下:
StartTime = "08:00 AM";
EndTime = "04:00 PM";
TotalTime(小时和分钟格式)。如何使用 C# 计算这个?
将它们转换为DateTime
并从另一个中减去一个以获得TimeSpan
.
DateTime StartTime = DateTime.Parse("08:00 AM");
DateTime EndTime = DateTime.Parse("04:00 PM"); // It converts this to 1600.
TimeSpan ts = EndTime - StartTime;
当我运行上面的代码时,它给了我
ts.Days // 0
ts.Hours // 8
ts.Milliseconds // 0
ts.Minutes // 0
ts.Seconds // 0
ts.Ticks // 288000000000
ts.TotalDays // 0.3333333333333333331
ts.TotalHours // 8.0
ts.TotalMilliseconds // 28800000.0
ts.TotalMinutes // 480.0
ts.TotalSeconds // 28800.0
得到你想要的。
您应该将字符串转换为DateTime
并用于TimeSpan
计算差异
DateTime d1 = DateTime.Parse(StartTime);
DateTime d2 = DateTime.Parse(EndTime);
TimeSpan ts = dt.Subtract(dt2);
类似上面的东西。你可能需要ParseExact
而不是Parse
对于您的采样时间,ts.ToString()
将返回一个字符串"08:00:00"
,给出小时、分钟和秒的差异
在将字符串解析为值时,使用该ParseExact
方法指定确切的格式DateTime
,然后将它们相减以获得一个TimeSpan
值:
string StartTime = "08:00 AM";
string EndTime = "04:00 PM";
DateTime start = DateTime.ParseExact(StartTime, "hh:mm tt", CultureInfo.InvariantCulture);
DateTime end = DateTime.ParseExact(EndTime, "hh:mm tt", CultureInfo.InvariantCulture);
TimeSpan diff = end - start;
Console.WriteLine(diff.TotalMinutes);
输出:
480
string StartTime, EndTime;
StartTime = "08:00 AM";
EndTime = "04:00 PM";
DateTime startTime = DateTime.Parse(StartTime);
DateTime endTime = DateTime.Parse(EndTime);
TimeSpan ts = endTime.Subtract(startTime);
输出:08:00:00 看跌期权是 Hrs:Min:Sec 格式。
这就是你需要的。对
注意: 减法时 endTime 应该在前。