2013-04-11 3 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)"이면 반환되는 값은 "금요일" – tcarvin

답변

4

오늘은 목요일이지만 오늘은 아니지만 코드는 tomorrow=Date.Now.AddDays(1)입니다. 대신 현재의 문화에 따라 하루-name의

, 내가 사용하는 것과 DayOfWeek-enum :

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

코드를 보내 주셔서 감사합니다. 나는 너를 사용하여 나의 것을 고치려고했고 나는 이제 아래를 가지고있다. '희미한 오늘 = Now.Date 희미한 weekdayname = CultureInfo.CurrentCulture.DateTimeFormat.GetDayName (today.DayOfWeek) weekdayname는 = "목요일"그럼 뭔가 (일) 경우 그렇지 일 (일) 최종면' – Silentbob

+0

@ user2050577 : 왜 비교하기 전에 enum 값을 지역화 된 문자열로 변환 하시겠습니까? 내 코드를 살펴보면 훨씬 더 읽기 쉽고 오류가 발생하기 쉽습니다 (대/소문자 구분 또는 다른 문화권 고려). 나는 여기서'GetDayName'의 이점을 보지 못합니다. 나중에 필요할 경우'today.DayOfWeek = DayOfWeek.Thursday'를 먼저 사용해야합니다. –