【问题标题】:performing an IF statement based on the weekday name根据工作日名称执行 IF 语句
【发布时间】:2013-04-11 12:45:20
【问题描述】:

我有以下 VB.NET 代码:

Dim tomorrow = Now.Date.AddDays(1)
Dim weekdayname = CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(tomorrow.DayOfWeek)
If weekdayname = "Thursday" Then
  something(happens)
Else
  something(happens)
End If

这似乎不起作用,即今天是星期四,我希望​​第一件事发生,但它忽略了这一点并转到第二个。

【问题讨论】:

  • 那么weekdayname的值是多少?
  • 如果“今天是星期四”而你 AddDays(1) 那么返回的值将是“星期五”

标签: vb.net weekday


【解决方案1】:

您说今天是星期四,但您的代码使用的不是今天而是tomorrow=Date.Now.AddDays(1)

我会使用DayOfWeek-enum,而不是取决于当前文化的日期名称:

Dim today = Date.Today
If today.DayOfWeek = DayOfWeek.Thursday Then
    something(happens) 
Else
    something(happens)
End If

【讨论】:

  • 感谢您的代码。我用你来修改我的,现在我有了以下内容。 ' 今天昏暗 = Now.Date 昏暗 weekdayname = CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(today.DayOfWeek) If weekdayname = "Thursday" Then something(happens) Else something(happens) End If'
  • @user2050577:为什么要在开始比较之前将枚举值转换为本地化字符串?看看我的代码,它更具可读性且不易出错(考虑区分大小写或不同的文化)。我在这里根本看不到GetDayName 的好处。如果你以后需要它,无论如何你应该首先使用today.DayOfWeek = DayOfWeek.Thursday
猜你喜欢
  • 1970-01-01
  • 2021-02-17
  • 1970-01-01
  • 2011-10-19
  • 2016-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多