33.簡単な年齢・月齢の求め方
今は生後何ヶ月?
赤ちゃんの成長曲線というサイトで、現時点での赤ちゃんの月齢・年齢を求めたい、という状況がありました。
誕生日は2001/1/1というように、日付でデータがあります。
では、現在の月齢・年齢を簡単に求めるにはどうすればいいのでしょうか?
日付を扱うとなると、うるう年のことや、1月31日生まれだとどの時点で月齢1ヶ月とするか?など、少々場合分けなんかが面倒になりそうだなぁ、、、なんて思ってしまいます。
ということで、ここではすごく簡単な年齢・月齢の求め方を示します。
年齢の求め方
うだうだ解説するよりコードをみた方が早いかな。
var today1:Number=year_today*10000+month_today*100+day_today;
var yso:uint=Math.floor((today1-birthday1)/10000);//年齢
誕生日が2001/2/3ならbirthday1=20010203となります。
同様に現在が2008/7/6ならtoday1=20080706となり、この2数の差の月日部分の端数を捨てちゃうだけです。うるう年もへったくれもありません。
月齢の求め方
同様に月齢を求めてみます。
ここで求める月齢は0〜11の値をとります。
var today2:Number=month_today*100+day_today;
if (today2<birthday2) today2+=1200;
var mso:uint=Math.floor((today2-birthday2)/100);//月齢
誕生日が2001/2/3ならbirthday2=203となります。
同様に現在が2008/7/6ならtoday2=706となり、この2数の差の日の部分の端数を捨てるだけです(もちろん、この場合は○歳□ヶ月の□の部分を求めています)。
途中、月齢がマイナスにならないようにしているだけで考え方は年齢のと変わりません。
実際に月齢・年齢を求めてみる
上のコードをベースに実際に求めてみました。startをクリックすると、何月何日に何歳何ヶ月になるかが表示されます。
もし、考え方が間違ってたらごめんね!(^^ゞ