はじめに
忙しさにかまけて、Qiitaからの発信をさぼりそうなので、
しょっちゅう忘れるPower Automate
の関数の備忘録をストックしていこうと思います。
今回のテーマは、現在日時から見た直近の日付の算出
です。
- 現在の日付から繰り上げて直近の1日または20日を取得する
このような機能をストックします。ショートブログです。
しょっちゅう自分自身忘れるので後で見返せるように!
フローの内容
全体像
規模が大きめの仕組みで使う場合は、子フローにすることをお勧めします。
インスタント クラウド フロー
で作成します。
-
変数を初期化する
-
japanNow
という文字列変数
をセットします。- この記事では、なるべく
アクション
を使いません。 - convertTimeZone関数についてはこちら!
- タイムゾーン表記の参考
- 個人的にアクションが羅列することを嫌うからです。
式convertTimeZone(utcNow(),'UTC','Tokyo Standard Time')
- この記事では、なるべく
上記で
現在の時刻を取得する
とタイム ゾーンを変換する
の二点を達成しています
: -
-
変数を初期化する
-
-
dayOfMonth()関数
によって、変数japanNow
の日付部分を抽出しています。- 似たような名前の関数があるので要注意です。
-
~ is less than XX
は、XXより小さい、を表します。ここら辺の条件は臨機応変に。
-
式
addDays(startOfMonth(variables('japanNow'),19)
- 一度取得した現在日付の属する月の月初のタイムスタンプを取得します
- 取得したタイムスタンプからaddDays()関数を使い、19日加算します
私見ですが、厳密にタイムゾーンを加味するとなると、一度タイムゾーンを日本に直してから変換した関数がエラーが起きにくいように想像しました。getFutureTime関数もありますが、TimeStampを引数に設定できないことだけが不安に感じます。
式
addToTime(startOfMonth(variables('japanNow')),1,'Month')
- 一度取得した現在日付の属する月の月初のタイムスタンプを取得します
- 取得したタイムスタンプからaddToTime()関数を使い、1月加算します
標準で時間の加算が備わっているのはDays
、Hours
、Minutes
、Seconds
。
そのほかはToTime
で加算します。
テスト
子フローで出番がチョコチョコありそうです。
日付関数は自動化で押さえなきゃいけない必修事項!
活用してGood Power Lifeを!
See you next time♪