OS・・・『Microsoft Windows XP』
VB・・・『.net2005』
テキストボックスでまず、テキストに自分の"生年月日"を打ち込みます。
打ち込み終わったら、『計算』というボタンを押します。
そうしますとラベルに自分の"年齢"が表示されます。
この様な作業を行いたいのですが、全くの初心者なので誰か教えて頂けたらありがたいです。
> 年齢の計算を教えて下さい。
まだ生まれていない人に対しては計算対象外とするのか、それとも
マイナス年齢として出すのかを、あらかじめ決めておいてくださいね。
それと年齢計算には、目的に応じて異なる計算手法がありますので、
どの方法を採用するのかも重要になってきます。
(1) 生誕日時を 0歳 とし、以降、誕生日の同時刻を迎える毎に1歳加える。
(2) 生誕日を 1歳 とし、以降、元日を迎える毎に1歳加える。
(3) 生誕日を 0歳 とし、以降、誕生日(の0時)を迎える毎に1歳加える。
(4) 生誕日を 0歳 とし、以降、誕生日の前日(の24時)を迎える毎に1歳加える。
(1) は、時刻までも含めて判断するので、今回は使わないでしょう。
(2) は、いわゆる「数え年」というやつです。
(3) と (4) はともに「満年齢」です(前日24時と当日0時は同一時刻を意味しますね)。
一般的な認識に近いのは (3) かも知れませんが、法令上は (4) が採用されています。
> テキストボックスでまず、テキストに自分の"生年月日"を打ち込みます。
テキストボックスでも良いですが、『DTPicker(DataTimePicker) コントロール』を
使った方が便利だと思いますよ。
TextBox だと、「日付では無い文字列」を入れられた場合のチェックが必要ですが、
DTPicker なら、正しい日付値しか入力できないようになりますし、日付入力時に
手入力だけではなく、カレンダーから日付を選ばせる事もできるようになります。
なお、DTPicker を使うには、[プロジェクト]-[コンポーネントの追加] にて、
"Microsoft Windows Common Controls-2 6.0"
にチェックを付けてやれば OK です。
> この様な作業を行いたいのですが、
手で計算する時と同じ手順をとれば OK です。すなわち、
(1) [今日の年] から [誕生年] を引き算する。これが満年齢となる。
(2) ただし、[誕生年月] が [今日の年月] を迎えていない場合は、(1) から 1 歳引く。
という計算を行えば良い事になります。
(満年齢で算出したい場合は、[今日]という部分を1月1日にしてください)
例えば、
現在日付 = 2008/09/01
に対して、
生年月日 = 2005/08/01
の満年齢を出すのであれば、
手順(1) により、(2008 - 2005) で 3 歳。
手順(2) により、(8月1日≦9月1日) なので、年齢補正なし。
ということで [3 歳]と得られます。
これが、
生年月日 = 2005/09/02
であれば、
手順(1) により、(2008 - 2005) で 3 歳。
手順(2) により、(9月2日>9月1日) なので、そこから -1 歳する。
ということで [2 歳]と得られます。
ここまで分かれば、後は日付型から、年,月,日 を切り出せば求められるかと。
日付から年/月/日を得る方法としては
日付型の Year / Month / Day プロパティ
VB組込の Year / Month / Day 関数
VB組込の DatePart / Format 関数
などなど、幾つかの方法があります。
すみません。
一部、VB6 の情報が混じってしまいました。
> DTPicker なら、正しい日付値しか入力できないようになりますし、
失礼しました。DTPicker というのは、VB6 のコントロール名です。
.NET の場合は、「DataTimePicker コントロール」を使ってください。
> なお、DTPicker を使うには、
この手順が必要なのは、VB6 の場合です。VB2005 の場合は、ツールボックスに
DataTimePicker コントロールが用意されていますので、そちらを使ってください。
ツイート | ![]() |