年齢の計算を教えて下さい。


さゃ  2008-09-01 19:00:11  No: 140336

OS・・・『Microsoft Windows XP』
VB・・・『.net2005』

テキストボックスでまず、テキストに自分の"生年月日"を打ち込みます。
打ち込み終わったら、『計算』というボタンを押します。
そうしますとラベルに自分の"年齢"が表示されます。

この様な作業を行いたいのですが、全くの初心者なので誰か教えて頂けたらありがたいです。


魔界の仮面弁士  2008-09-01 22:41:02  No: 140337

> 年齢の計算を教えて下さい。
まだ生まれていない人に対しては計算対象外とするのか、それとも
マイナス年齢として出すのかを、あらかじめ決めておいてくださいね。

それと年齢計算には、目的に応じて異なる計算手法がありますので、
どの方法を採用するのかも重要になってきます。

  (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 関数
などなど、幾つかの方法があります。


魔界の仮面弁士  2008-09-01 22:45:07  No: 140338

すみません。
一部、VB6 の情報が混じってしまいました。

> DTPicker なら、正しい日付値しか入力できないようになりますし、
失礼しました。DTPicker というのは、VB6 のコントロール名です。
.NET の場合は、「DataTimePicker コントロール」を使ってください。

> なお、DTPicker を使うには、
この手順が必要なのは、VB6 の場合です。VB2005 の場合は、ツールボックスに
DataTimePicker コントロールが用意されていますので、そちらを使ってください。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加