【问题标题】:day of week and hour of day in a if statement c#if语句c#中的星期几和一天中的几小时
【发布时间】:2013-04-08 21:34:11
【问题描述】:

如果在 if 语句中一天中的时间和一天中的时间相等,我想做某事。我有一天的部分,只是无法弄清楚时间部分。假设我希望时间是上午 9 点。

这是我目前所拥有的

var dt_check_monday = DateTime.Now.DayOfWeek;
if (dt_check_monday == DayOfWeek.Monday && time_now = DateTime.Now.Hour==9)
{
//do something
}

我不能使用这个我得到一个错误:

运算符“&&”不能应用于“bool”和“System.TimeSpan”类型的操作数

提前感谢您的帮助。

【问题讨论】:

  • 你想对时间跨度time_now做什么?
  • 请注意,此代码不会编译,time_now 未声明。
  • @Clint 我们看到的编译错误似乎表明time_now 被声明为somewhere 并且类型为System.TimeSpan。编译器正在像这样解释表达式:if ( ((dt_check_monday == DayOfWeek.Monday) && time_now) = (DateTime.Now.Hour == 9) )

标签: c# datetime if-statement dayofweek timeofday


【解决方案1】:

= 是一个赋值。 == 是“等于”

你的第二个 = 应该是 ==

【讨论】:

    【解决方案2】:

    你应该这样做:

    if (DateTime.Now.DayOfWeek == DayOfWeek.Monday && DateTime.Now.Hour == 9)
    {
    
    }
    

    您的代码对未声明的变量 time_now 进行了赋值,而您正在对 time_now = 进行赋值,这是导致它失败的原因。

    您还应该考虑修改变量的命名方式,dt_check_monday 如果其中的值是 DayOfWeek.Wednesday,则绝对没有任何意义,考虑将其更改为 dt_currentDayOfWeek 之类的东西,但它已经以 DateTime.Now.DayOfWeek 的形式存在这就是我从示例中删除变量的原因。

    【讨论】:

      【解决方案3】:

      我认为time_now 具有TimeSpan 数据类型。所以你可以试试这个

      if (dt_check_monday == DayOfWeek.Monday && time_now.Hours == 9)
       {
          //do something
       }
      

      【讨论】:

        【解决方案4】:

        如果你想保留 time_now 以供以后使用,你必须用括号将 if 语句中的赋值包起来。

        var dt_check_monday = DateTime.Now.DayOfWeek;
        if (dt_check_monday == DayOfWeek.Monday && (time_now = DateTime.Now.Hour) == 9)
        {
            //do something
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-11-12
          • 2018-07-10
          • 2021-07-21
          • 1970-01-01
          • 2011-02-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多