私の返信の語句を流用された感もありますので、コメントを入れます。末日が絡むというか、起算した結果が存在しない日の場合は末日に置き換えるという事でしょう。処理内容と同一と言う事だと思います。因みに因みに、ここの説明も、詳しくは書いてありませんね。サマリーだからでしょうか。説明に言葉が足らず、ご迷惑をお掛けしました。末日が絡むというか、起算した結果が存在しない日の場合は末日に置き換えるという事でしょう。末尾に置き換えるということですね。私もそう思っていました。処理内容と同一と言う事だと思います。これは知りませんでした。考えてみればなるほどの仕様ですが、勉強になりました。ありがとうございます。以上を踏まえた上で、新たにコードを考えてみました。単体テストでは、上記に出た日付のテストは全てクリアしています。'開始日から1か月単位の先の日で、かつ、終了日以上となる日を満期日と定義する。'満期日があり得ない日付(2月30日とか)になる場合は、満期日の月末を満期日とする。'満期日があり得ない日付(2月30日とか)になる場合は、満期日の月末を満期日とする。'満期日よりも終了日が大きい場合は、少なくとも満期日は終了日より1か月先にある。皆様、ご回答有難うございます。ShiroYuki_Mot様よりご提示いただいたコードを試してみました。両方とも、自分が考えていることが実現できておりました。ありがとうございます。ご質問の後、自分なりに考えていたのですが、下記のコードに至りました。自分が行う条件で反問題がなかったのですが、問題点などがありましたら、ご指摘いただけると幸いです。本当に、ご回答有難うございました。11:50返信|引用0サインインして投票>自分が行う条件で反問題がなかったのですが、問題点などがありましたら、ご指摘いただけると幸いです。何かありましたらにお答えします。以下に書く事は、自分への戒めも込めて書く一般的な注意事項です。算出したデータに対して、補正を行うものですよね。ご質問に至ったのは、この例外処理に行き詰ったからだと思います。後日、想定していなかった値を放り込まれて、とんでもない値を吐く事もありますね。デバッグして、期待値を求められない場合、この様に、例外処理を書き加える事は良くあります。落ち漏れや、後日の変更時に分かり難いコードになってしまう事が、多々あります。文のオンパレードは頭が混乱しやすいです。漏れが出易いものです。可能であれば、考え方の方向転換や処理方法の変更をも考慮して下さい。可能な限り、条件文で分岐させるのは最小限にする方が、後々のメンテも楽になりますから。以上、読み飛ばして下さい。3:53返信|引用0サインインして投票ご回答有難うございます。trapemiya様ご指摘のとおりでした。ありがとうございます。ShiroYuki_Mot様アドバイス有難うございます。不安なところがあります。わかりやすいコードをかけるよう、努力をしていきたいと思います。