【发布时间】:2014-03-06 13:29:56
【问题描述】:
您好,我对 C# 中的 TimeSpan 有疑问。
在我的应用程序中,我计算了两次的差异。这是怎么回事->
12:00:30 - 12:00:00 = 00:00:30
但我的问题是如果第二次比第一次大...我得到一个负数:(
1:00:00 - 23:00:00 = -22:00:00
但是我想要一个正数怎么这样-->
1:00:00 - 23:00:00 -> 2:00:00
这是我的代码:
private static int GetTimeSpan(string Out, string In) {
try
{
TimeSpan diff = DateTime.Parse(In) - DateTime.Parse(Out);
double TotalSec = diff.TotalSeconds;
return (int)TotalSec;
}
catch (Exception)
{
return 0;
}
}
【问题讨论】:
-
你不能只检查哪个更大并从中减去另一个吗?
-
你将如何区分一个异常和两个相同的可能或可能不是时间,例如对于您的代码,
12:00:00-12:00:00将与'fish'-'elephant'相同。不要将字符串作为输入,取一个DateTime/Timespan。遵循 SRP 的明确案例。
标签: c# asp.net datetime time timespan