2013-04-11 1 views
1

У меня есть следующий код: VB.NETвыполняет оператор IF на основе имени буднего

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 

Это, кажется, не работает, то есть его четверг сегодня, и я хочу, чтобы первое, что должно произойти, но это игнорирует это и переходит ко второму.

+0

Так что значение 'weekdayname'? – sloth

+0

Если «его четверг сегодня» и вы 'AddDays (1)', то возвращаемое значение будет «Friday» – tcarvin

ответ

4

Вы говорите, что сегодня четверг, но ваш код использует не сегодня, а tomorrow=Date.Now.AddDays(1).

Вместо имени-день, который зависит от текущей культуры, я бы использовать DayOfWeek-enum:

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

Спасибо за код. Я использовал ваш, чтобы внести поправки в мой, и теперь у меня есть ниже. 'Dim сегодня = Now.Date Dim weekdayname = CultureInfo.CurrentCulture.DateTimeFormat.GetDayName (today.DayOfWeek) Если weekdayname = "Четверг" Тогда что-то (бывает) Else что-то (бывает) End If' – Silentbob

+0

@ user2050577 : Почему вы хотите перевести значение enum в локализованную строку, прежде чем вы начнете ее сравнивать? Посмотрите на мой код, он намного читабельнее и менее подвержен ошибкам (учитывайте чувствительность к регистру или разные культуры). Я вообще не вижу преимущества «GetDayName». Если вам это нужно позже, вы должны сначала использовать 'today.DayOfWeek = DayOfWeek.Thursday' в любом случае. –

 Смежные вопросы

  • Нет связанных вопросов^_^