パラメータ: 信じますか?このモジュールは、他のどの方法よりも数十倍速く書くことができます。パラメータは次のとおりです。
1:基準日は何日ですか?
2: (オプション) 何曜日を探していますか?指定しない場合、デフォルト値は土曜日です。
3: (オプション) 前方 (過去) または後方 (未来) を検索する必要がありますか?
指定しない場合、デフォルト値は将来(将来)を検索します。
プログラムコード
PublicFunctionSpecificWeekday(ByValDAsDate,OptionalByValWhatDayAsVbDayOfWeek=vbSaturday,OptionalGetNextAsBoolean=True)AsDate
SpecificWeekday=(((D-何日 GetNext)/7)-GetNext)*7 何日
エンドファンクション
おそらくプログラムがなぜこのように書かれているのか知りたいですか?
知っていましたか? VB では、すべての日付関数の基準日 (0 日目) は 1899 年 12 月 30 日 (土曜日) であり、最初の日は 1899 年 12 月 31 日 (日曜日) であるため、VB の WeekDay 関数のアルゴリズムは実際には ( Date-1) となります。 Mod7 1.
戻り値
日付
例:
次のどちらの日なのか知りたいのですが?
先週の月曜日: SpecificWeekday(Now,vbMonday,False)
次の土曜日: 特定の平日(現在)
次の金曜日、2000 年 9 月 9 日: SpecificWeekday("09/09/2000",vbFriday)->