以前この記事でPower AutomateにはDateDiff機能が存在しないと紹介したけれど、いつの間にかしれっと実装されていたので実際に使ってみた。
Power AutomateにDateDiffが実装されている!
いつの間にかPower AutomateにPower AppsのDateDiffに当たる関数「dateDifference」が実装されていた。
Power AppsのDateDiffとの違いは戻り値が期間を表す「文字列」として戻ってくることくらいかと。
実際使ってみた
ということで、早速色々使ってみた!
今回は文字列変数「start」と文字列変数「end」に入れた日付の差分をとったので、
変数「diff」に入れるdateDifferenceの式はこんな感じ。
dateDifference(variables('start'),variables('end'))
翌日
まずは簡単に翌日。期間1日を表す文字列が返ってくる。
昨日
続いて昨日。「start > end」の場合は期間がマイナスになって返ってくる。
翌月
続いて翌月。2月で試してみてもきちんと日数「28日」を返してくる。
もちろんうるう年の2月もばっちり「29日」を返してくる。
翌年
最後はうるう年を含めた1年。366日が返ってきているのでばっちり。
日本時間の今日と差分をとりたいとき
今日の日付との差分をとりたいときは「現在の時刻」アクションと「タイムゾーンの変更」アクションを使って求めた日付を、こんな感じでそのまま代入しても、
※式はこんな感じ。
※式はこんな感じ。
dateDifference(body('タイム_ゾーンの変換'),variables('end'))
ちゃんと結果が返ってくるし、
utcNowを使ってこんな感じで直接書いても大丈夫。
dateDifference(addHours(utcNow(),9,'yyyy/MM/dd'),variables('end'))
※式を見てわかるとおり、日付の仕切り記号は「/」でも「-」でもどちらでもいけるっぽい。
整数型に変換したいとき
返ってくる文字列を整数型に変換して計算に使いたい場合は、こんな感じでint関数とかsplit関数を使ってあげれば、
int(split(dateDifference(addHours(utcNow(),9,'yyyy/MM/dd'),'2022/11/01'),'.')[0])
整数に変換できて、
もちろんマイナスも大丈夫。
ということで日付の差分を求める関数「dateDifference」が実装されて、今までみたいにtick関数を使って差分を求めたり、オリジナルで関数を作らなくてよくなったので日付計算がとても便利になった!
コメント