麻烦各位老师帮我分析这个值班代码错在哪儿?
问题一以下值班顺序如果是以2018-5-7开始的日期,那么就变成下面的第一周、第二周、第三周的顺序了,不是按照Case 0、Case 1、Case 2来执行的,比你设定的起始日期要提前4天后才一周一周的变化,为了固定住第一周和第二周准时在周一变化,还要想好前面这四天一定要是上周的星期4,这是怎么回事呢?百思不得其解。
Private Sub Command1_Click()
startDate = CDate("2018/5/3")
Enddate = Date
temp = Abs(Enddate - startDate)
bz = (temp / 7) Mod 3
Select Case bz
Case 0
Label1.Caption = Enddate & "夜班:【罗某】"
Label2.Caption = Enddate & "早班:【何某】"
Label3.Caption = Enddate & "中班:【黄某】" '第三周(设定值是第一周)
Case 1
Label1.Caption = Enddate & "夜班:【何某】"
Label2.Caption = Enddate & "早班:【黄某】"
Label3.Caption = Enddate & "中班:【罗某】" '第一周(设定值是第二周)
Case 2
Label1.Caption = Enddate & "夜班:【黄某】"
Label2.Caption = Enddate & "早班:【罗某】"
Label3.Caption = Enddate & "中班:【何某】" '第二周(设定值是第三周)
End Select
End Sub
问题二
以下代码是求某天是今年的第几周,WW的值起始日期是从上周日到本周六呢?为什么不是本周一至本周日呢?
Private Sub Command2_Click()
Dim date0 As Date, date1 As Date
date1 = Date '或者 date1 = Cdate(Text1.text)
date0 = Year(date1) & "/01/01" '元旦
ww = DateDiff("ww", date0, date1) + 1
Label7.Caption = "今天是" & Year(date1) & "年第" & ww & "周"
End Sub
[此贴子已经被作者于2018-5-11 14:50编辑过]