次のメタ関数は、ある月のN回目のD曜日の日付を求めます。D1には、その月の1日の曜日を指定してください。

せっかくですのでconstexprを使った関数版も作ってみます。

最初のメタ関数と同名ですので、併用する場合はどちらかの名前を変更してください。

ところでC++20からは標準ライブラリのchronoに似たようなことをするための機能が追加されました。ただ、現時点では使えない処理系も多いようですので割愛します。


元ネタ

↑ 10. 日付・グレゴリオ暦計算テンプレート