以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求一段时间内,星期(星期一,二,三......)的天数  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=95102)

--  作者:yigusheng
--  发布时间:2017/1/10 12:51:00
--  求一段时间内,星期(星期一,二,三......)的天数

表A

 

星期     开始时间      结束时间          天数

星期一 2012/12/15  2013/12/20
星期二 2012/12/15  2013/12/20

 

 

计算从开始到结束时间[星期]列(星期几)的天数,比如2017年1月9日--2017年1月10   星期一的天数是1

 

请问如何编写按钮代码


--  作者:有点蓝
--  发布时间:2017/1/10 13:57:00
--  
Dim d1 As Date = #12/15/2012#
Dim d2 As Date = #12/20/2013#
Dim dict As new Dictionary(of String,Integer)
For i As Integer = 0 To 6
    dict.Add(Cstr(i),0)
Next

Do While d1<= d2
    dict(d1.DayOfWeek) += 1
    d1 =d1.AddDays(1)
Loop

For Each d As String In dict.Keys
    Output.Show("星期" & d & "数量 = " & dict(d))
Next

--  作者:有点色
--  发布时间:2017/1/10 14:13:00
--  

 你本来的代码就没问题啊。

 


For Each tt As DataRow In DataTables("时间表").DataRows
    Dim d1 As Date = tt("开始时间")
    Dim d2 As Date = tt("结束时间")
    Dim d3 As Date = d1
    Dim w1 As Integer = 0
    Dim w2 As Integer = 0
    Dim w3 As Integer = 0
    Dim w4 As Integer = 0
    Dim w5 As Integer = 0
   
    Do While d3<= d2
        Select Case d3.DayOfWeek
            Case 1
                w1 = w1 +1
            Case 2
                w2 = w2 +1
            Case 3
                w3 = w3 +1
            Case 4
                w4 = w4 +1
            Case 5
                w5 = w5 +1
        End Select
        d3 =d3.AddDays(1)
    Loop
   
    Select Case tt("星期")
        Case "星期一"
            tt("天数") = w1
        Case "星期二"
            tt("天数") = w2
        Case "星期三"
            tt("天数") = w3
        Case "星期四"
            tt("天数") = w4
        Case "星期五"
            tt("天数") = w5
    End Select
Next