日付の表示や計算で活躍する!FileMaker日付関数の使い方まとめ
FileMakerでカレンダーを作ってみようと思ったのですが、いざ始めてみると「作り方がわからない!」「そもそも日付関数って何?」というレベルだったので、日付関数の使い方について調べたまとめを「群馬FileMaker 勉強会 #4」で発表しました。今回のスライドはハロウィン仕様です!
意外に種類が多く、驚きや発見がたくさんあったので調べてみて色々と勉強になりました。
Date関数
引数
- 月…年の何月にあたるのかを示す。
- 日…月の何日にあたるのかを示す。
- 年…年度。(0001から4000までの4桁)
戻り値のデータタイプ
- 日付
Date関数の使用例
「Date(10,30,2015)」は「2015/10/30」を返します。また、Date同士の足し算や引き算も可能です。
Date関数を使ってみた感想
ポイントは、引数の順序が「月;日;年」であることです。
勉強会でも「日本人には戸惑う順番だね」という感想もあり、この順序をなかなか他では見ないのでよく間違えてしまいますが、これはFileMaker Proの日付書式に関係なく常にこの順番なので注意が必要です。
Day関数
Day関数は日付が月の何日にあたるのかを示す1から31の範囲の数値を返します。
引数
- 日付…西暦上の日付。
戻り値のデータタイプ
- 数字
Day関数の使用例
「Day(“2015/10/30”)」は「30」を返します。
DayName関数
DayName関数は指定された日付の曜日を示すテキストを返します。
引数
- 日付…西暦上の日付。
戻り値のデータタイプ
- テキスト
DayName関数の使用例
「DayName(Date(10;23;2015))」は「金曜日」を返します。
DayName関数を使ってみた感想
DayNameJ関数というものがあります。これは指定された日付の曜日を日本語のテキストで返すものです。
DayName関数と一緒では?と思いますが、DayName関数はOSの設定などが英語の場合ですと英語の曜日を返すようです。
(利用シーンが有るかはわかりませんが)OSの言語設定が日本語以外の環境で日本語の曜日を表示したいときはDayNameJ関数を使ってみようと思います。
MonthName関数
引数
- 日付…西暦上の日付。
戻り値のデータタイプ
- テキスト
MonthName関数の使用例
「MonthName(“2015/10/28”)」は「水曜日」を返します。
MonthName関数を使ってみた感想
DayName関数と同じように、こちらもMonthNameJ関数というものがあります。
これは、日付の月を日本語のテキストで返すものですが、「如月」「神無月」「師走」みたいな和名で返されるのではなく「2月」「10月」「12月」といったテキストで返されます。
(わかってはいましたが、ちょっと期待してしまいました…)
DayOfWeek関数
引数
- 日付…西暦上の日付。
戻り値のデータタイプ
- 数字
説明
日付の曜日が「日曜日」の場合は「1」を返します。対応している数字は下記のとおりです。
- 日曜日…1
- 月曜日…2
- 火曜日…3
- 水曜日…4
- 木曜日…5
- 金曜日…6
- 土曜日…7
DayOfWeek関数の使用例
「DayOfWeek(“2015/10/28”)」は「4」を返します。
DayOfYear関数
DayOfYear関数は日付の年の1月1日から指定された日までの経過日数に等しい数値を返します。
引数
- 日付…西暦上の日付。
戻り値のデータタイプ
- 数字
DayOfYear関数の使用例
「DayOfYear(“2015/10/23”)」は「296」を返します。
WeekOfYearFiscal関数
WeekOfYearFiscal関数は開始日に従って計算された日付を含む週を表す1から53までの数値を返します。
引数
- 日付…西暦上の日付。
- 開始日…1から7までの数字で、1は日曜日を表す。
戻り値のデータタイプ
- 数字
説明
開始日は、週のどの曜日を最初の人するかを表します。曜日と数字の関係は、DayOfWeek関数と同じです。
- 日曜日…1
- 月曜日…2
- 火曜日…3
- 水曜日…4
- 木曜日…5
- 金曜日…6
- 土曜日…7
また、年の最初の週は、その年の日付を4日異常含む第1週目を指します。
2009年を例にとると開始日を「5(木曜日)」とした場合は1月1日からはじまる週が第1週目となります。
開始日を「1(日曜日)」とした場合は1月4日からはじまる週が第1週目となり、1月1、2、3日が含まれる週は2008年の第53週目となります。
WeekOfYearFiscal関数の使用例
「WeekOfYearFiscal(“2009/1/1”;5)」は「1」を返します。
YearName関数
YearName関数は日付の和暦を指定された書式で返します。
引数
- 日付…西暦上の日付。
- 形式…表示形式を示す数字。
戻り値のデータタイプ
- テキスト
YearName関数の使用例
「YearName(“2015/10/23”;0)」は「平成27」を返します。
最後に
これで、ほぼ全ての日付関数の紹介が終わりました。
色々調べてみて、関数は種類が多くて使い分けが難しそうだなという印象を受けました。戻り値のデータタイプに違いがあるので、用途に応じて使い分ける必要があるのかもと思い、データ型のマッピングを調べました。