The following class retrieves the starting and end dates for the Current Hour/Day/Week/Month/Year:
Option ExplicitPublic Property Get CurrentHour() As CollectionSet CurrentHour = New CollectionCurrentHour.Add CDate(Date & " " & Format(Now, "HH") & ":00:00"),"StartDateTime"CurrentHour.Add CDate(Date & " " & Format(Now, "HH") & ":59:59"),"EndDateTime"End PropertyPublic Property Get CurrentDay() As CollectionSet CurrentDay = New CollectionCurrentDay.Add CDate(Date), "StartDateTime"CurrentDay.Add CDate(Date & " 23:59:59"), "EndDateTime"End PropertyPublic Property Get CurrentWeek() As CollectionSet CurrentWeek = New CollectionCurrentWeek.Add CDate((Date - Weekday(Date) + 1)), "StartDateTime"CurrentWeek.Add CDate((Date - Weekday(Date) + 7) & " 23:59:59"),"EndDateTime"End PropertyPublic Property Get CurrentMonth() As CollectionSet CurrentMonth = New CollectionCurrentMonth.Add CDate(Month(Date) & "/01/" & Year(Date)), "StartDateTime"CurrentMonth.Add CDate(Month(Date) + 1 & "/01/" & Year(Date) - 1 & "23:59:59"), "EndDateTime"End PropertyPublic Property Get CurrentYear() As CollectionSet CurrentYear = New CollectionCurrentYear.Add CDate("01/01/" & Year(Date)), "StartDateTime"CurrentYear.Add CDate("12/31/" & Year(Date) & " 23:59:59"), "EndDateTime"End PropertyImplementationDim TR As New TimeRangesIf optHour.Value Then Label1.Caption = TR.CurrentHour("StartDateTime") & " " Label1.Caption = Label1.Caption & TR.CurrentHour("EndDateTime")End IfIf opttoday.Value Then Label1.Caption = TR.CurrentDay("StartDateTime") & " " Label1.Caption = Label1.Caption & TR.CurrentDay("EndDateTime")End IfIf optWeek.Value Then Label1.Caption = TR.CurrentWeek("StartDateTime") & " " Label1.Caption = Label1.Caption & TR.CurrentWeek("EndDateTime")End IfIf optMonth.Value Then Label1.Caption = TR.CurrentMonth("StartDateTime") & " " Label1.Caption = Label1.Caption & TR.CurrentMonth("EndDateTime")End IfIf optYear.Value Then Label1.Caption = TR.CurrentYear("StartDateTime") & " " Label1.Caption = Label1.Caption & TR.CurrentYear("EndDateTime")End If