みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Windows 10 Pro 64bit
FMP 17
開始日:日付
1ヶ月後:計算:非保存:Date(Month(開始日) + 1 ; Day(開始日) - 1 ; Year(開始日)) 計算結果:日付
とすれば、開始日から1ヶ月後で1日を差し引いた日付が計算されるのですが、開始日が1月30日、31日の場合、1ヶ月後が3月1日、3月2日となってしまいます。
開始日が1月30日、31日の場合は、1ヶ月後が2月28日、閏年は2月29日となるように設定したいのですが、その方法で詰まってしまいました。
ご教示、お願いいたします。
Offline
結果の日に1足して元の日にならなければ、前月末に調整する。
Let ( d= Date(Month(開始日) + 1 ; Day(開始日) - 1 ; Year(開始日)) ; d - Case ( Day ( d ) + 1 <> Day ( 開始日 ) ; Day ( d ) ) )
Offline
waderさん
結果の日に1足して元の日にならなければ、前月末に調整する。
Let ( d= Date(Month(開始日) + 1 ; Day(開始日) - 1 ; Year(開始日)) ; d - Case ( Day ( d ) + 1 <> Day ( 開始日 ) ; Day ( d ) ) )
ご教示頂いた式にすると、2月1日の1ヶ月後が1月31日になってしまいます。
Offline
Min (
Date ( Month ( 開始日 ) + 1 ; Day ( 開始日 ) - 1 ; Year ( 開始日 ) ) ;
Date ( Month ( 開始日 ) + 2 ; 0 ; Year ( 開始日 ) )
)
Offline
足し方を間違えてた、こうかな?
Let ( d= Date(Month(開始日) + 1 ; Day(開始日) - 1 ; Year(開始日)) ; d - Case ( Day ( d + 1 ) <> Day ( 開始日 ) ; Day ( d ) ) )
Offline
それだと、1/29がだめになるか。
Offline
shinさん、waderさん
ご教示、ありがとうございます。
計算式がシンプルなMin関数を使ったshinさんの式を使用させて頂きます。
Offline
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 553.8 KiB (Peak: 581.74 KiB) ]