この形式の日付があります{Y,M,D}
。無効な日付やうるう年などの問題にぶつかることなく、この日付から3か月を引くなど、適切なサポートライブラリやトリックを使用できますか。
私の最近の同様の使用法は、次のように入力できるMySqlです。
Select '2011-05-31' - Interval 3 Month;
を生成し'2011-02-28'
ます。私はこのライブラリを自分で書く方法には興味がありません。それは避けたいことです。
この形式の日付があります{Y,M,D}
。無効な日付やうるう年などの問題にぶつかることなく、この日付から3か月を引くなど、適切なサポートライブラリやトリックを使用できますか。
私の最近の同様の使用法は、次のように入力できるMySqlです。
Select '2011-05-31' - Interval 3 Month;
を生成し'2011-02-28'
ます。私はこのライブラリを自分で書く方法には興味がありません。それは避けたいことです。
1> calendar:gregorian_days_to_date(calendar:date_to_gregorian_days({2011, 7, 14}) - 90).
{2011,4,15}
edateを使用します-特にシフト関数。
> edate:shift({2011,5,31}, -3, months).
{2011,2,28}
内部ではカレンダーモジュールを使用しているため、すべてのコーナーケースを正しく処理します。
この種のものに役立つユーティリティを使用してGitHubの要点を作成しました。必要に応じて、お気軽に盗んでください。