前月当月翌月の初日末日の日付取得
ライブラリのお裾分けです。
下記[経緯]の、特に太字部分をきっかけに投稿しました。
ノード「スクリプト実行」に転記して使用します。
命名(名前欄用)
- 日付取得(前月当月翌月の初日末日)
概要(注釈タブ用)
今日もしくは指定日の当月初日/翌月初日/前月末日等を取得します。
日付は常にYYYY/MM/DD形式で出力します。WinActorの設定に左右されません。
不要な情報はスクリプトタブで適宜コメントアウトしてください。
使用頻度が少ない翌月分はコメントアウト済みです。
指定日側はオプションです。日付の指定がなければ今日を採用します。
Excelに入力して日付と認識される表記に概ね対応します。
スクリプト(スクリプトタブ用)
SetUMSVariable $今日$, DateSerial(Year(Date()), Month(Date()), Day(Date()))
SetUMSVariable $前月初日$, DateSerial(Year(Date()), Month(Date()) - 1, 1) ' ★
SetUMSVariable $前月末日$, DateSerial(Year(Date()), Month(Date()), 0) ' ★SetUMSVariable $当月初日$, DateSerial(Year(Date()), Month(Date()), 1) ' ★
SetUMSVariable $当月末日$, DateSerial(Year(Date()), Month(Date()) + 1, 0) ' ★'SetUMSVariable $翌月初日$, DateSerial(Year(Date()), Month(Date()) + 1, 1)
'SetUMSVariable $翌月末日$, DateSerial(Year(Date()), Month(Date()) + 2, 0)d = !指定日!
' 日付の指定がなければ今日を採用
If d = "" Then
d = Date()
End If'SetUMSVariable $指定日前月初日$, DateSerial(Year(d), Month(d) - 1, 1)
'SetUMSVariable $指定日前月末日$, DateSerial(Year(d), Month(d), 0)'SetUMSVariable $指定日当月初日$, DateSerial(Year(d), Month(d), 1)
'SetUMSVariable $指定日当月末日$, DateSerial(Year(d), Month(d) + 1, 0)'SetUMSVariable $指定日翌月初日$, DateSerial(Year(d), Month(d) + 1, 1)
'SetUMSVariable $指定日翌月末日$, DateSerial(Year(d), Month(d) + 2, 0)
経緯
- WinActor内外を問わず、そこそこニーズがある
- よくよく考えれば、自力で辿り着ける範囲
- 何通りかある考えかたは、Googleせんせーがすぐに教えてくれる
https://www.google.com/search?q=月初+月末+日付 - WinActorでも標準ライブラリとかを少しだけ工夫して組み合わせればゴールに辿り着ける
https://winactor.com/questions/?q=月末|月初 - わたし自身もかなり前から工夫して使用中
工夫なんてしなくて済めば良いのに、、
1ライブラリで一瞬だったら良いのに、、 - 最近の投稿を機に、調べて自作
- 頻出4パターンを厳選(★部分)
基準日を指定したパターンにも対応 - シナリオ共有は.ums**しかアップロードできない
わたし自身はあいにく.ums**でアップロードする訳にいかない - 受講したセミナーと、周りの投稿に触発されてアウトプット
- スイートライブラリあたりに採用されないだろうか
指定日への入力テスト結果
- ◎ 2020/04/01
- ◎ 2020/4/1
- ◎ 2020/4
- ◎ 4/1
- ◎ 4/1/2020
- ◎ 4-1-2020
- ◎ 1-4-20
- ◎ 2020年4月1日
- ◎ 20年4月1日
- ◎ 20年04月1日
- ◎ 20年4月
- ◎ 令和2年4月1日
- ◎ 令和2年4月01日
- ◎ 令和元年4月
- × 4.1.2020
- × 令和元年第1四半期
- × 令和2年4/01
- × 2020/4月1
メリデメ
- ◎ 速い(一瞬)
- ◎ 指定日のオプションを使えば、考え得るパターンを網羅可能
- ◎ 指定日が多くの表記に対応
- ▲ 変数名の初期設定箇所が多め
- ▲ 状況に応じて、スクリプトタブでコメントアウトを加減することになる
関連スレッド
https://winactor.com/questions/question/学べそうなセミナー情報:【超・上級スクリプト/
https://winactor.com/questions/question/vbsをwinactorライブラリに加工する方法/
リファレンスサイト
VBScript関数リファレンス
DateSerial Year Month Day
https://www.kanaya440.com/contents/script/vbs/function/date/date_serial.html
https://www.kanaya440.com/contents/script/vbs/function/date/year.html
https://www.kanaya440.com/contents/script/vbs/function/date/month.html
https://www.kanaya440.com/contents/script/vbs/function/date/day.html
[VBScript] : バヤシタ
前月当月翌月の月初月末の日付を取得する方法
https://bayashita.com/p/entry/show/81
https://bayashita.com/p/entry/show/82
ユーザーフォーラムのサークル機能を軸に、アウトプットを促進する運動を展開してます。
お時間のあるときにでも覗いてみてください。
https://winactor.com/questions/circle/