在特定格式中比较两个DateTime
的最佳方法是什么,如果DateTime
已经过去,则触发代码。
我的日期时间格式为4/26/2017 10:00:00 AM
DateTime currentDateTime = DateTime.Now;
DateTime eventDateTime = DateTime.Parse("4/26/2017 10:00:00 AM");
int result = DateTime.Compare(currentDateTime, eventDateTime);
if (result < 0)
Response.Write( "is earlier than Do Nothing");
else if (result == 0)
Response.Write("is the same time as: Do Nothing");
else
Response.Write("Time is greater, Trigger Action ");
以上代码是否可以进行比较,或者我们可以改进它。
答案 0 :(得分:2)
对于我的观点,您建议的方法是比较C#中2 DateTime
个变量的最有效和最可接受的方法,考虑到如果2个日期也相等则需要采取行动。
旁注:
如果您只需要在没有相同条件的情况下比较2 DateTime
,您可以写下:
if (currentDateTime < eventDateTime)
Response.Write("is earlier than Do Nothing");
else
Response.Write("Time is greater, Trigger Action");
更清洁,更有效率。
答案 1 :(得分:0)
您可以使用嵌套if else语句,如下所示:
if (currentDateTime < eventDateTime)
Response.Write("is earlier than Do Nothing");
else if(currentDateTime > eventDateTime)
Response.Write("time is greater, Trigger Action");
else
Response.Write("is the same time as: Do Nothing");
答案 2 :(得分:0)
要比较Dates
,您的方法是有效的,因为根据MSDN
CompareTo方法比较当前实例的Ticks属性和值,但忽略它们的Kind属性。在比较DateTime对象之前,请确保对象表示同一时区中的时间。
因为它比较了两个DateTime实例的Ticks,所以它是比较的有效方法。
作为旁注,如果要查找DateTime实例之间的间隔,则可以使用DateTime.Subtraction,它将提供两个DateTime实例的TimeSpan
。因此,您可以找到他们minutes, hours, days, seconds, milliseconds by using TimeSpan properties的完全差异。
DateTime date1 = new DateTime(2010, 1, 1, 8, 0, 15);
DateTime dateNow = DateTime.Now;
TimeSpan interval = dateNow.Subtract(date1);
double totalHours= interval.TotalHours;
double totalMinutes = interval.TotalMinutes;
double totalSeconds= interval.TotalSeconds;
double totalMilliseconds= interval.TotalMilliseconds;