Visual Basic使用Weekday函数实现Label显示星期报错求解
错误原因
Weekday是Visual Basic内置的日期处理函数,并非泛型方法,不需要用Of关键字指定类型,你写的Weekday(Of Date)()属于语法误用。Weekday调用时需要传入你要计算的日期参数,如果要获取今日的星期,传入Date.Today即可。- 你现有代码中的判断逻辑是1对应周六、2对应周日,需要显式指定
Weekday的一周起始日为周六,才能匹配你的判断逻辑。
修正方案
方案1:保留原有If判断逻辑,仅修改错误代码行
把你原来的两行声明赋值代码替换为:
Dim dn As Integer ' 指定一周起始日为周六,返回值1对应周六,和你原有判断规则匹配 dn = Weekday(Date.Today, FirstDayOfWeek.Saturday)
后续的If判断代码不需要改动,运行即可正常给Label赋值。
方案2:简化代码,省略多分支判断
VB提供了内置的WeekdayName函数可以直接返回星期的字符串名称,你可以把所有相关代码精简为一行:
' 同样指定一周起始日为周六,匹配你原来的星期对应规则 Label61.Text = WeekdayName(Weekday(Date.Today, FirstDayOfWeek.Saturday))
内容的提问来源于stack exchange,提问作者Abdw Alrazig
相关产品推荐
相关产品推荐

