Power Automate のクラウドフローで、フロー実行日を基準として「先週の日曜日」と「先週の土曜日」の日付値が必要になったので、関数を利用して求めてみました。
先週の日曜日
先週の日曜日は、次のような関数で求めました。
addDays(
startOfDay(
convertFromUtc(
utcNow(),
'Tokyo Standard Time'
)
),
sub(
-7,
dayOfWeek(
convertFromUtc(
utcNow(),
'Tokyo Standard Time'
)
)
),
'yyyy/MM/dd'
)
実行時点である utcNow() を基準とし、実行日の 0 時 0 分の値を取得します。その後、-7 から dayOfWeek で求められる値を減算した値を取得し実行日に加算することで、先週の日曜日の日付を求めています。dayOfWeek は、日、月、火、水、木、金、土が「0、1、2、3、4、5、6」という数値で取得できる関数です。
例えば、今日が 7 月 6 日(水)であれば、dayOfWeek で求められる値は 3 となり、-7 - 3 = -10 を今日の日付から引くことなります、今日の 10 日前は 6 月 26 日(日)なので、ちゃんと先週の日曜日を求められていますね。
先週の土曜日
応用すると、先週の他の曜日も簡単に求めることができます。例えば土曜日は、次のような関数で求められます。
addDays(
startOfDay(
convertFromUtc(
utcNow(),
'Tokyo Standard Time'
)
),
sub(
-1,
dayOfWeek(
convertFromUtc(
utcNow(),
'Tokyo Standard Time'
)
)
),
'yyyy/MM/dd'
)
さいごに
フローの実行日を基準とした関数を利用した日付の計算式は、ストックしておくと使い回しができそうですね。