一番近い未来の平日を求める関数
一番近い未来の平日を求めるにはどうすればいいでしょうか?
引数として時分(例、"20:30"という文字列)
を与えて一番近い未来の平日(月曜から金曜)の日時を返すような関数を作っているのですが、なかなかうまくいきません。
例えば、"20:00"いう時分を表す文字列データを引数として渡すと、現在の時刻が"2007/2/2 19:30:00"のときは、日付型のデータ"2007/2/2 20:00:00"を返し、現在の時刻が"2007/2/2 20:30:00"のときは、来週の月曜日である"2007/2/5 20:00:00"を返すような関数です。
宜しくお願い致します。
(1)今日の指定時刻("20:00")をDate型で生成して、変数へ
例:「Taregt=CDate(Format(Now,"yyyy/mm/dd") & " " & 指定時刻)」とか・・・
(2)今の時刻を過ぎていたら(5)へ。
(3)Targetの曜日を求める。
「WeekDay関数」とか・・・
(4)土日でなければOK!
(5)+1日する
「DateAdd関数」とか・・・
(6)(3)へ戻る。
とかでは、どうでしょう?
#例は、VB6の場合。
ありがとうございます。早速、ご教授いただいた方法で次のようなプログラムを作ってみたところ、無事に所望の関数が出来ました。
ありがとうございました。
Public Function 一番近い平日の日時を求める(時分 As Date) As Date
Taregt = CDate(Format(Now, "yyyy/mm/dd") & " " & 時分)
If DateDiff("s", Now, Taregt) < 0 Then
Taregt = DateAdd("d", 1, Taregt)
End If
曜日 = WeekDay(Taregt)
Do While (曜日 = 1) Or (曜日 = 7)
Taregt = DateAdd("d", 1, Taregt)
曜日 = WeekDay(Taregt)
Loop
一番近い平日の日時を求める = Taregt
End Function
失礼しました。「解決」にチェックを入れるのを忘れていました;;
ツイート | ![]() |