vb.net 年齢計算

   


年齢計算について考えてみましょう。
ここではtextbox1に生年月日を入力してボタンを押したら
textbo2に年齢が表示されるように考えて見ましょう。
まずはtextbox1とtextbox2とボタンを配置しましょう。
ボタンとクリックしてクリックイベントを書きましょう。

textbox1に入れる形式はyyyyMMddとします。
入力例19880801

入力ミスは考えないものとします。
入力ミスしたらエラーになります。

なんとなく現在日から生年月日を引いたらよさそうですね。

サンプルソース
Public Class Form1

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
TextBox2.Text = Format(Now, "yyyyMMdd") - TextBox1.Text
End Sub

End Class


実行結果
年齢だけでいいのに日付けまで計算されてしまいました。

これではだめなので方法を考えます。
2桁にしたいので
290401だとすれば
10000でわれば29.0401になりますよね。
少数の切り上げはMath.Floorを使えます。

サンプルソース
Public Class Form1

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
TextBox2.Text = Math.Floor((Format(Now, "yyyyMMdd") - TextBox1.Text) / 10000)
End Sub

End Class

おさらい
一応説明するとfomatで現在の日付を取得しています。
それから生年月日のTextBox1.Textで引いています。
現在の日付 - 生年月日

年齢だけ出したいのこれでだめです。
いらない月日を削除したいですよね。
そこで桁数を取りたいときは割り算を使いましたよね。
10000で割ると2桁になります。
小数点はいらないのでMath.Floor関数を使用して取ります。
完成です。

用途としては
入力補助として考えてみてはどうでしょうか?
前から思うのですが生年月日もし間違って正しい書式で入力したら
入力チェックというかできませんよね。
年齢も入力させてチェックしたらいいかもですが。

今回は簡単すぎましたね。

PR



 - vb.netさんぷる

Translate »