逆引きFormula に戻る
以下のような質問がありました。
年は式がありますし、月は12の剰余を取ればいいので簡単でしたが、最後の日付をどうやったら取得できるかを考えていました。取得した年と月をずらしてあげればよいのではと気づき、以下のような形で実装できました。要望通りのものが作れているのではないかと思います。
- ○年を取得 (end が過去の場合にはマイナス)
dateBetween(prop("End"), prop("Start"), "years")
- ○ヶ月を取得 (end が過去の場合にはマイナス)
dateBetween(prop("End"), prop("Start"), "months") % 12
- 1, 2 のオフセットをずらした日付を取得
dateAdd(dateAdd(prop("Start"), prop("year"), "years"), prop("month"), "months")
- オフセットをずらした日付と比較することで○日を取得 (end が過去の場合にはマイナス)
dateBetween(prop("End"), prop("year_month_add"), "days")
- ○年○ヶ月○日の文字列を作成 (前後関係でマイナスを調整)
(prop("Start") < prop("End")) ? (((prop("year") != 0) ? (format(prop("year")) + "年") : "") + ((prop("month") != 0) ? (format(prop("month")) + "ヶ月") : "") + format(prop("date")) + "日") : (((prop("year") != 0) ? (format(-prop("year")) + "年") : "") + ((prop("month") != 0) ? (format(-prop("month")) + "ヶ月") : "") + format(-prop("date")) + "日")
日付間隔テスト
Name
Start
End
○年○ヶ月○日
year
month
year_month_add
date