![]()
Public Sub main()
Debug.Print GetNextSaturday(#1/27/2019#)
Debug.Print GetNextSaturday(#1/28/2019#)
Debug.Print GetNextSaturday(#1/29/2019#)
Debug.Print GetNextSaturday(#1/30/2019#)
Debug.Print GetNextSaturday(#1/31/2019#)
Debug.Print GetNextSaturday(#2/1/2019#)
Debug.Print GetNextSaturday(#2/2/2019#)
End Sub
'---------------------------------------------------------------------------------------------------
'【処 理 名】次の月曜日の日付取得
'【処理概要】指定の日付の次の月曜日の日付を取得する
'【引 数】[I]ByVal dt As Date 基準日
'【返 却 値】次の月曜日の日付
'---------------------------------------------------------------------------------------------------
Private Function GetNextMonday(ByVal dt As Date) As Date
GetNextMonday = dt + (7 - Weekday(dt, vbMonday)) + 1
End Function
'---------------------------------------------------------------------------------------------------
'【処 理 名】次の火曜日の日付取得
'【処理概要】指定の日付の次の火曜日の日付を取得する
'【引 数】[I]ByVal dt As Date 基準日
'【返 却 値】次の火曜日の日付
'---------------------------------------------------------------------------------------------------
Private Function GetNextTuesday(ByVal dt As Date) As Date
GetNextTuesday = dt + (7 - Weekday(dt, vbTuesday)) + 1
End Function
'---------------------------------------------------------------------------------------------------
'【処 理 名】次の水曜日の日付取得
'【処理概要】指定の日付の次の水曜日の日付を取得する
'【引 数】[I]ByVal dt As Date 基準日
'【返 却 値】次の水曜日の日付
'---------------------------------------------------------------------------------------------------
Private Function GetNextWednesday(ByVal dt As Date) As Date
GetNextWednesday = dt + (7 - Weekday(dt, vbWednesday)) + 1
End Function
'---------------------------------------------------------------------------------------------------
'【処 理 名】次の木曜日の日付取得
'【処理概要】指定の日付の次の木曜日の日付を取得する
'【引 数】[I]ByVal dt As Date 基準日
'【返 却 値】次の木曜日の日付
'---------------------------------------------------------------------------------------------------
Private Function GetNextThursday(ByVal dt As Date) As Date
GetNextThursday = dt + (7 - Weekday(dt, vbThursday)) + 1
End Function
'---------------------------------------------------------------------------------------------------
'【処 理 名】次の金曜日の日付取得
'【処理概要】指定の日付の次の金曜日の日付を取得する
'【引 数】[I]ByVal dt As Date 基準日
'【返 却 値】次の金曜日の日付
'---------------------------------------------------------------------------------------------------
Private Function GetNextFriday(ByVal dt As Date) As Date
GetNextFriday = dt + (7 - Weekday(dt, vbFriday)) + 1
End Function
'---------------------------------------------------------------------------------------------------
'【処 理 名】次の土曜日の日付取得
'【処理概要】指定の日付の次の土曜日の日付を取得する
'【引 数】[I]ByVal dt As Date 基準日
'【返 却 値】次の土曜日の日付
'---------------------------------------------------------------------------------------------------
Private Function GetNextSaturday(ByVal dt As Date) As Date
GetNextSaturday = dt + (7 - Weekday(dt, vbSaturday)) + 1
End Function
'---------------------------------------------------------------------------------------------------
'【処 理 名】次の日曜日の日付取得
'【処理概要】指定の日付の次の日曜日の日付を取得する
'【引 数】[I]ByVal dt As Date 基準日
'【返 却 値】次の日曜日の日付
'---------------------------------------------------------------------------------------------------
Private Function GetNextSunday(ByVal dt As Date) As Date
GetNextSunday = dt + (7 - Weekday(dt, vbSunday)) + 1
End Function
Weekday
何曜日であるかを表す 1 (日曜) ~ 7 (土曜) の範囲の値を返します。
Weekday(date, [firstdayofweek])
引数
date
日付を表す式を指定します。
引数 date が有効な値ではない場合は、Null 値を返します。
firstdayofweek
週の第 1 日目の曜日を表す定数を指定します。
この値を省略すると、1 (日曜) が使用されます。
Weekday(date, [firstdayofweek])
引数
date
日付を表す式を指定します。
引数 date が有効な値ではない場合は、Null 値を返します。
firstdayofweek
週の第 1 日目の曜日を表す定数を指定します。
この値を省略すると、1 (日曜) が使用されます。
Weekday関数の第2引数を指定し、
求めたい曜日が週の始まりになるようにずらして、
基準日とその週までの差分を求めて計算しています。
例えば、第2引数にvbMondayを指定すると、
第1引数の日付が月曜日の場合1、日曜日は7が返却されます。
7日間(1週間)からWeekdayの返却値を引けば、
週末までの日数がわかります。
基準日にその日数を足して、その次の日が求めたい曜日の日。
