はじめに
Notion Formula の第26回目は、「月初・月末の日付を得るには?」とします。逆引きの記事はこちらです。プロパティの日付の月初・月末を得るものと、今月初日・今月末が分かれています。
月の初日を得るには
早速、使われている数式を見てみます。昨日の日付のみの情報を得るものとメソッドは一緒でした。違いはフォーマット文字列が「YYYY-MM」になっているだけです。これによって日付の情報が消えるので初日になるということです。簡単ですね。
/* 日付プロパティの日付を YYYYMM の文字列に変換 */
prop("日付").formatDate("YYYY-MM")
/* 作成した文字列から日付を作成 */
.parseDate()
今月初日を得るには
今月の初日を得るのも同じです。 prop("日付") の部分が today() に変わっただけです。
/* today() を YYYYMM の文字列に変換 */
today().formatDate("YYYY-MM")
/* 作成した文字列から日付を作成 */
.parseDate()
月の最終日を得るには
月の最終日は31日だったり、30日だったり、28日だったりとバラバラです。ただし、翌日は常に1日です。そこから、翌月1日に移動したのちに1日前に移動します。特に1行ずつ説明するまでもないかと思います。
/* 日付プロパティの日付を YYYY-MM の文字列に変換(日の部分を強制的に1日に設定) */
prop("日付").formatDate("YYYY-MM")
/* 作成した文字列から日付(当月1日)を作成 */
.parseDate()
/* その日付の1ヶ月後の日付(翌月1日)を取得 */
.dateAdd(1, "months")
/* その日の前日の日付を取得 */
.dateSubtract(1, "days")
今月の最終日を得るには
こちらも日付の変わりに today() に変更するだけです。
/* today() を YYYY-MM の文字列に変換(日の部分を強制的に1日に設定) */
today().formatDate("YYYY-MM")
/* 作成した文字列から日付を作成 */
.parseDate()
/* その日付の1ヶ月後の日付(翌月1日)を取得 */
.dateAdd(1, "months")
/* その日の前日の日付を取得 */
.dateSubtract(1, "days")
おわりに
今回は、「月初・月末の日付を得るには?」を解説しました。parseDate で月初日が直接取得できるようになったので、Formula 1.0 の時代に比べるとかなり短く記述できるようになっています。