UiPath 月初日・月末日取得方法(VB.NET)
業務自動化でよく月初日や月末日を求めることが多いため自分用のメモ
変数を作成
変数名 | 変数の型 |
---|---|
month_first_day | System.DateTime |
days | Int32 |
month_last_day | System.DateTime |
上記の通り3つ変数を用意する。
※追記の最後に記載している方法を使う場合はdays
はいらないです。

System.DateTime型は 変数一覧 -> 変数の型 -> 型の参照で型の名前に入力すると出てきます。

変数の既定値を設定する
month_first_day
new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1)
month_first_dayに上記を設定する。
DateTime.Now.Year
でシステム日付の年部分
DateTime.Now.Month
でシステム日付の月部分
最後の1
で日付を月初にする。

days
DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month)
daysに上記を設定する。
DaysInMonth
は指定した年、月の日数を返します。(うるう年も計算する)
DateTime.Now.Year
とDateTime.Now.Month
を指定することでシステム日付の今月の日数を取得します。

month_last_day
new DateTime(DateTime.Now.Year, DateTime.Now.Month, days)
month_last_dayに上記を設定する。
DateTime.Now.Year
でシステム日付の年部分
DateTime.Now.Month
でシステム日付の月部分
days
で先ほど取得した今月の日数(最終日)を指定する。

テスト

出力結果

month_first_day.ToString("yyyy/MM/dd") '2019/12/01
month_first_day.ToString("yyyyMMdd") '20191201
ToStringの後で表示形式を変更できる。
月部分はMMにするmmだと分になってしまう
参考サイト

追記
当月分のデータ取得するなどでタイムスタンプが同じようにyyyy/MM/dd hh:mm:ss
のデータを比較する場合month_first_day
はそのままでよいが、month_last_day
は以下のように設定する。
new DateTime(DateTime.Now.Year, DateTime.Now.Month, days).AddDays(1).AddSeconds(-1)
上記に設定後のmonth_last_day
出力値(2019/12/17)
12/31/2019 23:59:59
これで、条件などにmonth_first_day(12/01/2019 00:00:00) =< 比較データ >= month_last_day(12/31/2019 23:59:59)
と設定すれば当月分のデータを取得できる。
ここまで書いてて気づいたこと
month_last_day = month_first_day.AddMonths(1).AddDays(-1)
にすればdays
いらなかった。。。
いや、なにかに使えるかもしれない。。。
コメント