【VB】取得該月第幾周的第一天及最後一天

        Dim FirstDay As String = ""
        Dim LastDay As String = ""

        '2011/05 的第二週 的第一天與最後一天各是幾號
        Call GetFirstLastDateForWeek("2011", "5", 2, FirstDay, LastDay)
        MsgBox(FirstDay & "," & LastDay)  '輸出-->FirstDay:8, LastDay:14

副程式:

Sub GetFirstLastDateForWeek(ByVal sYear As String, ByVal sMonth As String, ByVal Week As Int16, ByRef FirstDay As String, ByRef LastDay As String)
        '*************************************
        '取得該日期的第n週的第一、最後一天
        '*************************************
        Dim FirstDate As New DateTime(sYear, sMonth, 1)   '該週的第一天  星期日
        Dim LastDate As New DateTime(sYear, sMonth, 1)    '該週的最後一天  星期六

        For i As Int16 = 1 To Week
            '第幾週
            FirstDate = LastDate

            Do Until Weekday(LastDate) = 7
                LastDate = LastDate.AddDays(1)
            Loop

            If Week > 1 Then
                LastDate = LastDate.AddDays(1)
            End If

        Next

        If Week > 1 Then
            LastDate = LastDate.AddDays(-1)
        End If

        FirstDay = Format(FirstDate, "dd")
        LastDay = Format(LastDate, "dd")

    End Sub

留言

這個網誌中的熱門文章

【ASP】日期轉換(西元<-->民國)

【VB】使用NPOI元件來匯出Excel--DataTableToExcel

【SQL】符號切割字串變成多欄