2017-03-13 67 views
0

我有這樣的方法:DAYOFWEEK - 獲得天數

Dim dayofweek As Integer = CInt(DateTime.Now.DayOfWeek) 
Dim startdayvalue As Integer = 0 
Select Case args(1).ToLower 
    Case "monday" 
     startdayvalue = 1 
    Case "tuesday" 
     startdayvalue = 2 
    Case "wednesday" 
     startdayvalue = 3 
    Case "thursday" 
     startdayvalue = 4 
    Case "friday" 
     startdayvalue = 5 
    Case "saturday" 
     startdayvalue = 6 
    Case "sunday" 
     startdayvalue = 7 
End Select 

Return (dayofweek - startdayvalue + 7) Mod 7 + 1 

ARGS(1)是像「週一」到「週日」,用戶可以扔在我想它總是以開始新的一天。給定區域設置的值爲1。我想我的最後一行是錯誤的,因爲它給了我錯誤的值。例如,它給我星期一= 1(正確)星期二= 7(不正確)星期天(2)。在我的地區設置週中,星期一開始,應該是一個星期一和星期天7.

+1

這是VB,而不是C#。 –

+0

什麼與'DateTime.Now.Day'綁定? (假設日期編號表示日期) – Plutonix

+0

對不起,關於C#。我對1 - 7的結果感興趣 - 不是每個月的實際日子。 – serializer

回答

0

您不應該嘗試針對.NET Framework提供的抽象。

您可以從特定的文化得到通用星期幾號:

Dim ci As System.Globalization.CultureInfo 
ci = New System.Globalization.CultureInfo("de-DE") 
Dim fdow As System.DayOfWeek 
fdow = ci.DateTimeFormat.FirstDayOfWeek 

您可以使用此DayOfWeek比較對您DateTime.DayOfWeek,以確定此日期是否在一週的第一天爲您文化。