我有这个方法:
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 + 1args(1)是用户可以输入的日期,比如“星期一”到“星期日”。对于给定的区域设置,我希望它始终以值1开头。我猜我的最后一行出了问题,因为它给了我错误的值。例如,它给我星期一=1(正确)星期二=7(不正确)星期日(2)。在我的区域设置中,一周从星期一开始,应该是一周和周日7周。
发布于 2017-03-13 22:29:44
您不应该试图违背.NET框架提供的抽象。
您可以从给定的区域性获取通用DayOfWeek编号:
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进行比较,以确定对于您的文化而言,此日期是否在一周的第一天。
https://stackoverflow.com/questions/42765735
复制相似问题