• ベストアンサー

ファイルメーカー 一ヵ月後の日付をだすには?

入力日、タイプ:日付に2005/8/5と手動でいれたら、 有効期限(タイプ:日付)に自動で2005/9/5というように、入力日から一ヵ月後の日付を出すにはどのような計算式をいれたらよいのでしょうか? 参考書に載っていた Date(Month(入力日)+ 1 ; Day(入力日); Year(入力日)という式を使うと 2005/08/01 と打ち込むと、2005/9/9 とでてしまいます。 2005/12/30の場合は、2006/1/1と出ます。 どうしたら、よいか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • bucchukun
  • ベストアンサー率43% (18/41)
回答No.3

--------------------------------------------------- If ( Month ( Date ( Month ( 入力日 ) + 1 ; Day ( 入力日 ) ; Year ( 入力日 ) ) ) > Month ( Date ( Month ( 入力日 ) + 1 ; 1 ; Year ( 入力日 ) ) ) ; Date ( Month ( 入力日 ) + 1 + 1 ; 0 ; Year ( 入力日 ) ) ; If(Day ( Date ( Month ( 入力日 ) ; Day ( 入力日 ) + 1 ; Year ( 入力日 ) ) ) = 1 ; Date ( Month ( 入力日 )+1+1 ; 0 ; Year ( 入力日 ) ) ; Date ( Month ( 入力日 ) + 1 ; Day ( 入力日 ) ; Year ( 入力日 ) )) ) ------------------------------------------------------ フィールドタイプは「計算」で結果は「日付」です。 私が過去に他の方の回答に使用した式です。コピペで使えます。 検証は適当ですのでご自分でどうぞ。

momo0116
質問者

お礼

ありがとうございました。さっそくやってみます。

その他の回答 (4)

  • bucchukun
  • ベストアンサー率43% (18/41)
回答No.5

#3です。 再補足です。 提示した式はFMP7形式ですので、FMP6以前のバージョンをお使いであれば、式中の「;」を「,」に変換してください。 テキストエディタを利用すれば簡単に出来ます。 次から式を質問するときはバージョンを書いてください。上記のように、書式が変わりますので。

  • bucchukun
  • ベストアンサー率43% (18/41)
回答No.4

#3です。 式の補足ですが、2005/6/30と入れると結果は2005/7/31になります。 31日後ではないのでご注意を。普通そんな結果を求める人はいないと思いますが。

  • zenjee
  • ベストアンサー率47% (50/106)
回答No.2

質問ですが、1ヶ月後というのは、入力日の31日後の日付ということですか?例えば入力日が2005/1/30なら有効期限は2005/3/2でいいということになりますが、それでよければ極めて簡単で、有効期限の計算式を 「入力日+31」 とすればいいことになりますね。 しかし有効期限をあくまで翌月の対応日(例えば入力日が2005/2/28なら有効期限を2005/3/28に)したいというのなら、一旦「年、月、日」をそれぞれテキストに変換しなおかつIF関数などで条件を定めない限り無理な話です。 例えば入力日が2005/1/30なら2005/2/30という対応日は存在しないのでそのときは2/28にするとかですね。

momo0116
質問者

お礼

ありがとうございました。2月のことは忘れていました。

回答No.1

入力時の時間をUnixTimeにして、24*60*60するとか

momo0116
質問者

お礼

アドバイスありがとうございました。

関連するQ&A