FileMaker で経過年月日計算

日付 A から日付 B までの経過を「 a 年 b か月 c 日」の形式で求めたいケースはよくあると思う。これを FileMaker でやろうとしたが一見簡単そうで手こずっていた。。

以下のサイトに分かりやすく解説があるが、1月でかつ、目的日の日付が基準日より数値が小さい場合は値がマイナスになってしまった。

【FileMaker】経過年月日を求める - Qiita
https://qiita.com/tyuma/items/080aeef287f3aa2de58d

こういうときに役立つのが、FileMaker のさまざまなカスタム関数が公開されている「FileMaker Custom Functions」というサイトだ。このサイトで求めていたカスタム関数を見つけることができた。

環境:macOS Catalina Version 10.15.6(英語環境)、FileMaker Pro 18 Advanced

以下のページのカスタム関数を利用すればいい。

FileMaker Custom Function: age ( date1 ; date2 )
https://www.briandunning.com/cf/518

たとえば age ("2020/5/10" ; "2022/1/8" ) とすると、以下のような結果が出てくる。

1
7
29
1 years, 7 months, and 29 days

1年7ヶ月 29 日という結果が、改行区切りで出力される。

GetValue 関数を使えば必要な行を取り出せるので、例えば月数部分は GetValue ( age ("2020/5/10" ; "2022/1/8" ) ; 2 ) とすれば7が返ってくる。

なお日付の指定は、システム書式に依存するので、僕の環境では 年/月/日 の形式で指定する。FileMaker Custom Function のページではサンプルが 月/日/年 となっているが、それは作成者がアメリカの日付形式のマシンを使っているからだろう。

参考:
FileMaker Custom Function: DateDifference ( date1 ; date2 ; format )
https://www.briandunning.com/cf/536

改行区切りテキスト(改行リスト)を取得する仕組み - Qiita
https://qiita.com/takeuchi/items/d23aa87830cae49bdcff

フィールド内のデータが誤っている、または表示されない
https://fmhelp.filemaker.com/help/14/fmp/ja/html/add_view_data.4.46.html

日付フィールドのデータの操作
https://fmhelp.filemaker.com/help/14/fmp/ja/html/add_view_data.4.19.html#820850


いいなと思ったら応援しよう!