ごきげんよう、百合宮桜です。
今回はPower Automate における日付に扱い方について書いていきます。
月初は毎月1日と決まっているので簡単ですが、月末は30日の時もあれば、31日の時もある……
2月なんてうるう年かどうかで末尾が変わってくる!!と難しいことばかりですよね。
でも意外と手数少なく取得できます。
2024年09月24日、モダンデザイナーでの方法に変更しました。
月初日の取得方法
これは簡単です。
月の1番初めの日は1日と決まっていて、他はありませんから。
タイムゾーンの変換アクションの書式設定文字列をカスタムすればOKです。
実務で使う場合は、スケジュールされたフローでトリガーすることも多いかと思いますが、今回は簡単のために手動トリガーを使用していきます。
-
トリガーを選択し、「入力の追加」をクリックします。
-
「日付」を選択します。
-
日付入力欄ができました。
-
+ > アクションの追加 をクリックします。
-
ランタイムを「組み込み」で絞り込みます。
-
「Date Time (日時)」を検索、クリックします。
-
タイムゾーンの変換 をクリックします。
-
Base Time(基準時間) に 動的なコンテンツから トリガーの日付 を入れます。
:
-
Source Time Zone(変換元のタイムゾーン)を「Coordinated Universal Time」に設定します。
-
Destination Time Zone(変換先のタイムゾーン)を「Osaka, Sapporo, Tokyo」に設定します。
-
Time Unit(書式設定文字列)は カスタム値の入力 をクリックします。
-
以下の式を入力します。
yyyy/M/01
これでトリガーで指定した日付の月初日が取れます。
テストで確認しよう。
実際にテストしてみてください。
-
テストボタンをクリックします。
-
手動 >テスト をクリックします。
-
トリガーで今日の日付を指定し、フローの実行をクリックします。
-
完了 をクリックします。
-
タイムゾーンの変換の出力を確認すると、トリガーで指定した月の1日が出力されていることが分かります。
月末日の取得方法
これは
①月初日を取得
②月初日の1か月後を計算
③その1か月後の日の1日前を取得する
という形で取得していきます。
つまり、先の月初日の取得方法のフローにアクションを追加する形で作ります。
この後↑にアクションを追加していきます。
-
Date Time(日時)コネクタの「時間への追加」をクリックします。
-
Base Time(基準時間)に 動的なコンテンツから 先に取得した月初日 を入れます。
-
Interval(間隔) を「1」、Time Unit(時間単位)を「Month」にします。
-
Date Time(日時)コネクタから 「時間からの減算」アクションを選択します。
-
Base Time(基準時間)に 動的なコンテンツから 時間への追加 > Calculated Time(算出時間) を入れます。
-
Interval(間隔) を「1」、Time Unit(時間単位)を「Day(日)」にします。
これで月末日が取得できます。
テストで確認しよう
先ほどと同じ日付を指定して、確認してみます。
トリガーで指定した月の末日が取得できました。
2月や8月で試してみればわかりますが、末日が何日でも関係なく、取得できます。
便利なのでぜひ覚えてください
関数でも同じことができるよ
私は初心者向けにノーコードで書きましたが、関数でカッコよく決めたいよね!派は、ヘイシャアりなえもんのポストをご参考にどうぞ!
#PowerAutomate
— りなたむ(Ryota)@ITの町医者👨⚕️ (@Rinatamu_ITDR) September 14, 2023
月初日
startOfMonth(utcNow(),'yyyy-MM-dd')
月末日
addDays(startOfMonth(getFutureTime(1,'Month')),-1,'yyyy-MM-dd')