【问题标题】:Checking if a DateTime is before DateTime.Now检查 DateTime 是否在 DateTime.Now 之前
【发布时间】:2013-07-29 19:31:03
【问题描述】:

我如何使用某种形式的if 语句检查某个DateTime(在这种情况下称为dateAndTime1)是否早于当前日期和时间,我认为将使用DateTime.Now 检索?

【问题讨论】:

标签: c# windows-phone-7 datetime if-statement windows-phone-8


【解决方案1】:

、>= 和 == 运算符适用于 DateTime 实例,因此

if(dateAndTime1 < DateTime.Now)

请注意,如果您在循环中比较它,可以通过在循环前设置DateTime now = DateTime.Now 并与now 比较来获得一些小的效率

【讨论】:

  • 根据您的注释:您是对的,除非在边缘情况下这是一个长时间运行的过程,并且now 总是需要立即成为DateTime.Now。这是因为在设置 now 变量时,它会在长时间运行的进程中过时......就像我说的那样,“边缘情况”,并且可能很少遇到。
  • 实际上特别是因为我宁愿使用在整个循环中保持一致的变量。显然这取决于用例,但我可以想象,当向用户返回一组特定的值时,锚点应该几乎总是恒定的以获得一致的结果。
【解决方案2】:
if(dateAndTime1 < DateTime.Now)
{
  //do something
}

【讨论】:

    【解决方案3】:

    内联也可以。

    // bool variable
    bool isHistory = dateAndTime1 < DateTime.Now;
    
    // string return statement
    return dateAndTime1 < DateTime.Now ? "History" : "Future";
    

    【讨论】:

    • 为了大家的利益,您的示例中使用的表达式的名称是三元表达式。
    猜你喜欢
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    • 2021-02-25
    • 1970-01-01
    • 2012-01-10
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多