1. FM Paradise
  2. 実践編
  3. 月末を計算してみよう!

月末を計算してみよう!

逆転の発想

ファイルメーカー(FileMaker Pro)に限らず、プログラミング的思考というのはこういった場面ではよく求められます。押してダメなら引いてみろ、という言葉があるように正面からぶつかっては解決しないこともよくあります。そういったときには逆転の発想で乗り切りましょう。

その月の月末を計算してはいけない

例えば「3月20日」に販売した商品があるとします。この販売商品は「3月31日」に締められ、「4月30日」を支払いの期限として請求書を発行します。このとき「3月20日」はすでに入力されているので、この日付から「3月31日」とい「4月30日」を自動的に計算をするわけです。

このときに「3月」というデータに注目して、そこから月末にたどり着こうとしても非常に難しくなります。ここで、逆転の発想が必要です。

月末の次の日は必ず「1日」

「4月30日」も「3月31日」も必ず、次の日が「1日」になる点に注目しましょう。つまり月初の前の日が月末になるわけです。まず「3月31日」を求める場合は、「3月20日」の次の月の月初を計算してみましょう。ここでは「売上::日付」というフィールドに「2017/3/20」というデータが入っているとします。

Date ( month(売上::日付) + 1 ; 1 ; year(売上::日付) )

上記式のようにすると、「2017/4/1」を返します。日付関数「Date」を使い、月+1し、1日の日付を返します。

Date ( Month(売上::日付) + 1 ; 0 ; Year(売上::日付) )

今度は、日の引数の部分に「0」にしてみます。先ほどの「1」から-1(前の日)した「0」にしてみると「2017/3/31」を返します。

前のページ