Tag Archives: 日付計算

かんたん Basic アクティビティパックv1.1.0で追加されるアクティビティ一覧

かんたん Basic アクティビティパックv1.1.0で追加されるアクティビティ一覧 とりあえず何が追加されたか知りたい方向けの一覧です。 かんたん Basic アクティビティパックv1.1.0の導入方法はこちら

UiPathで翌営業日を取得する方法

UiPathで翌営業日を取得する方法 UiPathでは.netのメソッド等を使用することができますが、 翌営業日は.netでどうやって取ればいいのでしょうか? ましてや日本の祝日を考慮することなんてできるんでしょうか? 残念ながらそう言った便利なものはありません。 しかし、UiPathにはいろいろとほかの解決策が存在します。 例えばEXCELはワークシートで関数を使うことができるのですが、 その中にWORKDAY関数というものがあります。 これを使うことで自分で祝日マスタを作っておく必要はありますが、 日本の祝日(今後変わっても対応可能)に対応させることができます。 =WORKDAY(対象日付, 何日進めるかを指定, 祝日マスタの場所) こんな感じで指定します。 ただし、これはEXCELの話で、この関数は.netには存在しないためUiPathでは使うこともできません。 それではUiPathでEXCELの関数を使うことはできないのでしょうか? 例えばこちらの手順でUiPathからVBAを起動することが可能です。 このやり方を応用し、VBAでワークシート関数を呼び出す「WorksheetFunction」プロパティを使って、 このWORKDAY関数を利用することもできます。 今回はそういうことをせず、便利なパッケージをインストールして解決していきましょう。 まず「パッケージを管理」を開きます。 ※パッケージのインストールがよくわからない方はこの辺を参考にしてください。 左メニューからAvailable>Allと進み、検索ウィンドウで「UiPathTeam」で検索します。 するといろいろなパッケージが検索されますので、 「UiPathTeam.NextWorkingDay.Activities.Design」を選びインストールしてください。 するとアクティビティの中にUiPathTeam >「Calendar」という項目が増えます。 こちらを開くと「Get Next Working Day」と「Get Previous Working Day」というアクティビティがあります。 このアクティビティを使うことで、翌営業日と前営業日が簡単に取得できます。 設定はすべてプロパティで行います。 Input  ・Country Code:国コードを指定します。 datetime型の変数となるので、あらかじめ変数を作って入れておくか、「datetime.Parse(“対象日付”)」というように記述します。  ・Reference Date:インプットとなる日付変数を指定します。デフォルトは当日です。 このアクティビティ、なんと日本の祝日に対応しています。ここは”JP”と指定するだけです。指定なしだとエラーになります。テキストエンコードは日本完全無視仕様なのになんて親切なんでしょうか。  ・Next Working Day:次の営業日がdatetime型で出力されます それでは日本対応していることを証明するために、5月の連休で試してみましょう。 2018/5/2をターゲットにします。この5/2は水曜日の平日ですので、ここから1日進めると、 翌日から日曜日まで休みが続くので、翌営業日は5/7(月)となります。 上記画面のように設定し、出力された変数を.ToString(“yyyy/MM/dd”)してメッセージボックスに表示します。 この通り、見事に日本固有の休みでも対応できました!インストールさえすればかなり便利です。

UiPathで年月日を加工しよう

UiPathで年月日を加工しよう ※2018.3よりUiPathがデフォルト日本語のアクティビティ名となりましたので、 この記事では各アクティビティや機能名を日本語名(英語名)というように記載しています。 現在日時の使い方はこちらで紹介しましたが、年月日といえばいろいろな計算が必要なケースも多いです。 例えば10日後の日付、その月の1日、先月末などなど。 今回はそういったよくある使い方をいくつか紹介します。 前提としてこの計算はdatetime型という変数が必要です。 現在の年月日表示をするnowはもともとdatetime型なので直接操作が可能ですが、 例えばEXCELから読み込んだ日時の文字列などを操作する場合はそのまま計算できないため、 いったんdatetime型に変換する作業が必要ですので気を付けましょう。 前準備.datetime型への変換 now(現在日付+時刻)がどんな場合も使えるとは限りませんので、 まず特定の文字列を代入アクティビティ(Assign)を使ってdatetime型に変換するという方法をやってみましょう。 最初の代入(Assign)でまず日付になる文字列”2018/10/08″を設定します。 最初は文字列なので例としてString型の変数variable1に設定しました。 次にdatetime型変数のvariable2を作ります。 ※画面下の変数(Variables)タブで変数の作成(CreateVariable)を選択することで、新規作成することができます。 作ったままの状態はGenelicValue型もしくはString型になっていますので、datetime型に変更します。 Sting型の場合はStringの部分をクリックするとプルダウンメニューが表示されますので、 「型の参照…(Browse for Types…)」を選びます。 さらにウィンドウが新しく開きますので、datetimeで検索します。 すると検索結果にmscorlibというのが表示され、その中に「DateTime」があるのでそれを選択し、OKを押します。 最初の画面に戻るとVariable TypeがDateTimeに変わります。これで準備完了です。 Assignではこのようにdatetime型に変換します。 datetime.Parse(variable1) datetime.Parse(変数名)とすることで、 日付・時分秒の形になっているものをdatetime型に変換できます。 当然、関係のない文字列に対してこれを行うとエラーになります。 こうすることにより、以降の日付操作を行うことが可能になります。 以降はAssignの右に書く内容となります。(画像でいうと赤枠の右側です) 例1.1日足す variable2.adddays(1) 例2.1か月足す variable2.addmonths(1) 例3.1か月引く variable2.addmonths(-1) 例4.その月の1日目 datetime.parse(variable2.tostring(“yyyy/MM/01”)) 急に複雑になったように見えますが、実はただの遠回りをしています。 せっかくdatetime型にした文字列をまたもとの文字列に戻しています。 その時、上記の要に書くとyyyyMMまではそのまま使うのですが、 日付は何が入っていても01、つまり1日目が入ります。 そして最後にまたdatetime型に戻しています。 ※もちろんvariable1の日付部分を01にしておけば不要です。 例5.先月末 上記の例2と4を組み合わせた応用です。その月の1日目からさらに1日を引くと、 先月末になります。このやり方が便利なところは、 月によって変化する最終日を間違いなく取得できるところです。(もちろんうるう年も対応します) ほとんど4と同じですが、最後にさらに1日引く処理を追加しています。 最後につける理由ですが、adddaysメソッドはdatetime型にしか使えませんので、 datetime.parseでdatetime型に変更した後となります。 datetime.parse(variable2.tostring(“yyyy/MM/01”)).adddays(-1)… Read More »

UiPathで現在の年月日を使おう

UiPathで現在の年月日を使おう UiPathに関係なく、特定の作業で年月日表示を使う機会は多く発生します。 ファイル名に年月日をつける、EXCELのセルに年月日を書きこむ、ログに日時を記入するなど、 利用方法を覚えておくと、いろいろなことに応用がききます。 こちらは特定のUiPathアクティビティがあるというわけではありません。 Microsoftの.netの記法とまったく同じ使い方が可能です。 例えばAssign、Excel Application Scopeのパス指定など、どこでも使うことができます。 それではMessage Boxを使って使用例を見ていきましょう。 1.まずMessage Boxアクティビティを追加します 2.現在日時を表示させます 現在日時を表示させる際は画像のように「now」を利用します。 ※そのままではエラーになってしまいますので、.tostrignで文字列に変換をしています。 実行すると、以下のように現在時刻が表示されます。 3.加工して任意の形式で表示させます 2のように加工しない場合は秒まで付いているので、ファイル名などには使いにくいです。 そうした場合は以下のように設定をすることで加工が出来ます。 now.tostring(“yyyyMMdd”) 例えば20180624と表示させたければ上図のように「yyyyMMdd」をtostringでさらに指定します。 ※MMは月、mmは分になりますので注意してください。 最初に記載した通り、Microsoftの.netの記法がそのまま使えますので、 例えばMicrosoftのサイトを参考にすることでほかの利用方法も調べることができます。