C#をつかって生年月日から年齢を計算するアプリをつくります。

年の上二桁と下二桁、月、日をコンボボックスで表示します。1ヵ月が何日かは月によって違うので、DropDownイベントをつかってドロップダウンされるときに適切な選択肢を挿入しています。

コンストラクタ内でコンボボックスにアイテムを追加しています。

日を表示するコンボボックスがドロップダウンされるときに、年、月をしらべて、大の月か小の月か、閏年かどうかを確認して適切なアイテムを挿入しています。その月が、1月、3月、5月、7月、8月、10月、12月なら31日まで、4月、6月、9月、11月なら30日まで、2月は4の倍数の年(ただし1900年は閏年ではないので注意)は29日、それ以外の年は28日までです。

そしてボタンがクリックされたら今日の日付を取得してその人の年齢を計算しています。その年の誕生日を過ぎていれば現在年から生年をひけばいいし、まだであればさらに1を引くと年齢を知ることができます。

西暦から年号を求めるメソッドです。新年号と旧年号の最後の年が同じ年になるので月日で判断をする必要があります。