早上好,
我正在使用日历表单控件来获取用户选择的日期和日期范围。在日历单击事件中,我刷新我的表单以向用户显示所选的开始和结束日期。
作为更新的一部分,我更新了一个文本字段以显示工作日和日期:
txtStartDate.Text = WeekdayName(Weekday(startDate)) + " " + startDate
然而,我得到的工作日是1天(周二显示为周一,周一显示为周日,周日显示为周六。)
为了解决这个问题,我做了以下工作:
txtStartDate.Text = WeekdayName(Weekday(startDate) - 1) + " " + startDate
这适用于星期一 - 星期六,但是当我在日历上选择一个星期日时,它(事后很明显!)崩溃,因为它无法显示值为-1的日期!
我试图找到一种方法将星期的第一天设置为星期一而不是星期日。我已经对日历控件执行了此操作,但这只会更改显示的开始日期,而不是当天的值。我试过更改CurrentCulture设置:
Thread.CurrentThread.CurrentCulture = New CultureInfo("en-UK")
Thread.CurrentThread.CurrentUICulture = New CultureInfo("en-UK")
这也不起作用。
如何将星期一设置为工作日的第0天(startDate)?
答案 0 :(得分:3)
问题似乎是Weekday默认为星期日是一周的第一天,而WeekdayName默认为当前系统默认值。
试试这个:
txtStartDate.Text = WeekdayName(Weekday(startDate, FirstDayOfWeek.System)) + " " + startDate
答案 1 :(得分:0)
试试这个:
Dim thisCulture As Globalization.CultureInfo = Globalization.CultureInfo.CurrentCulture
Dim dayOfWeek As DayOfWeek = thisCulture.Calendar.GetDayOfWeek(startDate)
Dim dayName As String = thisCulture.DateTimeFormat.GetDayName(dayOfWeek)