このページの本文へ

FIXER cloud.config Tech Blog

Power Appsで日付や時刻を細かく操作する方法まとめ

2021年06月15日 11時00分更新

文● 毛利 真士/FIXER

  • この記事をはてなブックマークに追加
  • 本文印刷

 本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「Power Appsの日時操作のまとめ」を再編集したものです。

 こんにちは、毛利 真士です。

 この記事は Power Apps における日時に関する操作のまとめです。

 Power Appsで~という日時の処理をしたい! というときにどうぞ。

0.はじめに

 この記事では「日付」が年月日、「時刻」が時分秒、「日時」が日付と時刻を合わせたものを表すとします。

 公式ドキュメント的にはDate型(日付用)とTime型(時刻用)とDateTime型(日時用)があるということになっていますが、全部DateTime型だと思っておけばいいと思います。

1.今日の日付や現在の日時を知りたい

 Now関数、Today関数を使います。

 今日の日付を得る(時刻部分は0時0分0秒)


Today()

 現在の日時を得る(時刻部分も含む)


Now()

2.ある日時が何年か知りたい、何時か知りたい、何曜日か知りたいなど

 Year関数、Month関数、Day関数、Hour関数、Minute関数、Second関数、Weekday関数を使います。

関数 意味
Year 日時の年を得ます Year(Now())
Month 日時の月を得ます Month(Now())
Day 日時の日を得ます Day(Now())
Hour 日時の時を得ます Hour(Now())
Minute 日時の分を得ます Minute(Now())
Second 日時の秒を得ます Second(Now())
Weekday 日時の曜日を得ます(日曜日: 1, 月曜日: 2, …) Weekday(Now())

3.ある日時が今日かどうかを判定したい/今日がある日付かを判定したい

 IsToday関数を使います。

 例: 今日が2021年5月27日かどうかを判定


IsToday(Date(2021, 5, 27))

4.文字列を日時にしたい

 DateValue関数、TimeValue関数、DateTimeValue関数を使います。

 省略可能な第二引数を使うと、指定した地域の書式に対応できます(詳細はリンク先)。

 例: 文字列”2021/05/27″から日付への変換

 
DateValue("2021/05/27")

 例: 文字列”10:20:30″から時刻への変換


TimeValue("10:20:30")

 例: 文字列”2021/05/27 10:20:30″から日時への変換


DateTimeValue("2021/05/27 10:20:30")

5.日時を文字列にしたい

 Text関数を使います。

 以下の説明では現在時刻を文字列にする例を示します。現在時刻以外の日付を文字列にしたいときはNow()の部分を変えてください。

 日時の日付を”~年~月~日”などの形式の文字列にする

 例:“2021年05月03日”(第二引数のyyyyが最低4桁の年に、mmが最低2桁の月に、ddが最低2桁の日に置き換えられます)


Text(Now(), "yyyy年mm月dd日")

 例:“2021年5月3日”(第二引数のyyyyが最低4桁の年に、mが最低1桁の月に、dが最低1桁の日に置き換えられます)


Text(Now(), "yyyy年m月d日")

 例:“2021-05-03”(第二引数のyyyyが最低4桁の年に、mmが最低2桁の月に、ddが最低2桁の日に置き換えられます)


Text(Now(), "yyyy-mm-dd")

 日時の時刻を”~時~分~秒”などの形式の文字列にする

 注意: mとmmが月にも分にも使われますが、これらの区別は、h,hhが直前で使われているか、s,ssが直後で使われている場合に分だと認識され、それ以外の場合は月と認識されます。

 例:“01時02分03秒”(第二引数のhhが最低2桁の時に、mmが最低2桁の分に、ssが最低2桁の秒に置き換えられます)


Text(Now(), "hh時mm分ss秒")

 例:“1時2分3秒”(第二引数のhが最低1桁の時に、mが最低1桁の分に、sが最低1桁の秒に置き換えられます)


Text(Now(), "h時m分s秒")

 例:“3分” (分だけほしいとき)

 分だけほしい場合は書式指定できないのでMinuteを使います。


Text(Minute(Now()), "#分")

 例:“03分” (分だけほしいとき)


Text(Minute(Now()), "#00分")

 日時を”~年~月~日 ~時~分~秒”などの形式の文字列にする

 例:“2021年05月03日 10時20分30秒”(yyyyなどの意味は上記参照)


Text(Now(), "yyyy年mm月dd日 hh時mm分ss秒")

6.数値を指定して日時を作りたい

 Date関数とTime関数を使います。

 例:2021年5月27日を表す値を作るとき(日時は0時0分0秒)


Date(2021, 5, 27)

 例:10時20分30秒を表す値を作るとき(日付の情報はなし)


Time(10, 20, 30)

 例:2021年5月27日10時20分30秒を表す値を作るとき

 なぜか関数がないのでテキスト経由で作る


DateTimeValue(Text(Date(2021, 5, 27)) & " " & Text(Time(10, 20, 30)))

7.日時を翌日にしたい、2時間後にしたい、30分前にしたい、など

 DateAdd関数を使います。

 第三引数で加算・減算の単位を指定できます。省略した場合はDays(日単位)です。

 例:翌日にする


DateAdd(Now(), 1, Days)

 例:2時間後にする


DateAdd(Now(), 2, Hours)

 例:30分前にする


DateAdd(Now(), -30, Minutes)

 第三引数で指定する単位の一覧(省略時はDays(日))

第三引数 単位
Years
Quarters 四半期
Months
Days
Hours
Minutes
Seconds
Milliseconds ミリ秒

8.2つの日時の時間差を計算したい

 DateDiff関数を使います。

 第一引数の日時にどれだけ足すと第二引数の日時になるか?が得られます。

 単位は7.のDateAdd関数と同じです

 例:2021年4月1日から2021年5月30日までの日数 = 59日


DateDiff(Date(2021, 4, 1), Date(2021, 5, 30), Days)

 例:2022年4月1日から2021年4月1日までの年単位の差分 = -1年


DateDiff(Date(2022, 4, 1), Date(2021, 4, 1), Years)

 例:13:00:00から15:30:00までの時間単位(分・秒は無視される)の差分 = 2時間


DateDiff(Time(13, 0, 0), Time(15, 30, 0), Hours)

 例:13:00:00から15:30:00までの分単位の差分 = 150分


DateDiff(Time(13, 0, 0), Time(15, 30, 0), Minutes)

 例:13:00:00から15:30:00までの分単位の差分(時間) = 2.5時間


DateDiff(Time(13, 0, 0), Time(15, 30, 0), Minutes) / 60

9.2つの日時が同じ日付かどうかを判定したい

 datetime1、datetime2は日時を持つ変数などとします。

 例:日時datetime1と日時datetime2が同じ日付かどうか


Text(datetime1, "yyyymmdd") = Text(datetime2, "yyyymmdd")

 例:datetime1の日付が2021年5月27日かどうか


Text(datetime1, "yyyymmdd") = Text(Date(2021, 5, 27), "yyyymmdd")

10.ある日付の年がうるう年かどうか

 datetimeが日時を表す変数だとします。


(Mod(Year(datetime), 4) = 0 && Mod(Year(datetime), 100) <> 0) || Mod(Year(datetime), 400) = 0 

11.入力-日付の選択 で選択された日付を得たい

 SelectedDateで選択されている日付を得られます。

 例:名前がDatePicker1の「日付の選択」で選択されている日付を得る


DatePicker1.SelectedDate

12.まとめ

 思ったより日付操作の関数多いですね。

  毛利 真士/FIXER

 三重県出身の毛利真士です
 趣味は競プロ、Rust、サーバ周り、自作言語・コンパイラなどなどです

[転載元]
 Power Appsの日時操作のまとめ

カテゴリートップへ