はじめに

こんにちは!

早速ですが、UiPathを使用して開発を行う中で、例えば今日のToDoリストを連絡してくれるプログラムや、期限超過を自動で通知するプログラムを作る時など、日付同士の前後(大小)を判定したい!という時はありませんか?

こちらのブログでは、UiPathのDateTime.Compareメソッドを使用して、2つの異なる日付について、前後関係を比較し、判定する方法をご紹介します。

実際にやってみましょう!

今回は、実際のUiPathで、日付1が日付2よりも後の日付であることを判定するプログラムを作成します。

①まず、準備段階として、DateTime型の変数に日付を代入します。
日付に対する操作を行うので、DateTime型の変数が前提として必要になります。

DateTime


DateTimeは、日付や時刻に関わるデータを格納する型です。
今日の日付、現在日時を取得する場合は、右辺にDateTime.Nowを設定することで対応できます。
②そして、アクティビティの一つである、「条件分岐」を配置します。

UiPath-日付-比較-条件分岐


その条件としては、
DateTime.Compare(日付1, 日付2) > 0
を設定します。

UiPath-日付-比較-式

今回は日付1が日付2よりも後である場合は処理を行う想定であったため、不等号が左開きである>0と記入しました。
これは、DateTime.Compareメソッドの戻り値はInt32型の整数であり、日付1が日付2よりも後である場合は、戻り値は「0より大きい値」となるからです。

DateTime.Compareメソッドに関しては、後ほど出てくる見出し「DateTime.Compareメソッドとは?」で詳しく説明していますので、是非ご確認ください。

③そして、Then,Else以降に、それぞれの処理を記入します。
今回は、Then以降に実施処理を記入しました。


日付1は「2021年1月4日」、日付2は「2020年12月27日」なので、
日付1の方が後となり、今回はTrueという結果になります。


コンソールに、「結果がTrueになりました。日付は01/04/2021 00:00:00です。」という1行書き込みの内容が出力されました!

UiPath-日付-比較-結果

DateTime.Compareメソッドとは?

DateTime.Compareメソッド

DateTimeの2つのインスタンスを比較し、第1のインスタンスが第2のインスタンスよりも前か、同じか、それとも後かを示す整数を返します。

引用元:https://docs.microsoft.com/ja-jp/dotnet/api/system.datetime.compare?view=net-5.0
※ここでいうインスタンスとは変数のことを指しています。


DateTime.Compareメソッドとは、上記の引用の通り、DateTime型の2つのインスタンスを比較し、第1のインスタンスが第2のインスタンスよりも前であるか、同じであるか、後であるかを示す整数を返すメソッドです。

DateTime.Compareメソッドが返却してくれる戻り値は、「0より小さい値」、「0」、「0より大きい値」です。

日付1が日付2よりも前の(小さい)日付である場合は、戻り値は「0より小さい値」になります。
日付1と日付2が同じである場合は「0」
日付1が日付2よりも後の(大きい)日付である場合は「0より大きい値」になります。

注意事項

DateTime.Compareメソッドは日付同士を比較した結果を返すメソッドです。
そのため、比較した日付同士の日数の差分を返すわけではありません。

例えば、「2021年1月4日」と「2021年1月1日」を比較した場合に、「4日」-「1日」=「3」という数字が返ってくるわけではなく、減算結果を取得することまではできません。


日付の減算方法についても、今後このブログでご紹介していければと思っております!

このメソッドを活用することで、日付の前後、大小を比較し判定することができます。

まとめ

このように、日付の大小の比較はDateTime.Compareメソッドで対応することができます。

他にも日付を扱う方法は様々なものがありますので、今後どんどんご紹介していきたいと思います。

今回の紹介は以上です!

皆さんのプログラムに活用していただければ幸いです。