09/03/03 23:35:42
TimeSpanに年数を示すプロパティはないんだな。考えてみれば、月数や年数はTicksから
一意に定まるものじゃないものな。
結局場合分けして引き算するしかなさそうだ。
ちなみに、年齢が変わるのは「誕生日の前日の午後12時」なので、誕生日が来たら年齢が変わると考えておk。
// DateTime d1 = 指定日付, d2 = 誕生日
int age;
if (d1 < d2)
{
// 何かしらエラー処理する
}
else if (d1.Month > d2.Month || (d1.Month == d2.Month && d1.Day >= d2.Day))
{
age = d1.Year - d2.Year;
}
else
{
age = d1.Year - d2.Year - 1;
}