Menghitung Umur Dengan VB.Net (Plus Source Code)

Menghitung umur seseorang tentunya tidaklah sulit, namun bagaimana jika kita diminta menghitung umur secara detail seperti berapa tahun, berapa bulan, dan berapa hari?. Ini tentu saja menyulitkan. Nah berikut disajikan program menghitung umur menggunakan VB.Net.

Pada VB.Net memang tidak memiliki fungsi yang langsung dapat menghitung umur secara detail, namun dengan akal-akalan kita dapat membuat fungsi sendiri memanfaatkan teknik-teknik programming.

Berikut adalah bagian utama program yang digunakan untuk menghitung umur.

    Function calculateAge(dateOfBird As Date, fromDate As Date) As String
        Dim dateNow As Date
        Dim tgl As Date

        Dim years As Long
        Dim months As Long
        Dim days As Long

        Dim yearWord As String
        Dim monthWord As String
        Dim dayWord As String

        dateNow = fromDate
        tgl = dateOfBird

        ' menghitung tahun
        years = DateDiff("yyyy", tgl, dateNow)
        If Month(tgl) > Month(dateNow) Then
            years = years - 1
        ElseIf Month(tgl) = Month(dateNow) And tgl.Day > dateNow.Day Then
            years = years - 1
        ElseIf Month(tgl) = Month(dateNow) And tgl.Day = dateNow.Day Then
            GoTo Finish ' jika bulan dan tanggal sama maka perhitungan selesai
        End If

        ' menghitung bulan
        tgl = DateAdd("yyyy", years, tgl)
        months = DateDiff("m", tgl, dateNow)
        If tgl.Day > dateNow.Day Then
            months = months - 1
        ElseIf Month(tgl) = Month(dateNow) And tgl.Day >= dateNow.Day Then
            months = months - 1
        End If

        tgl = DateAdd("m", months, tgl)

        ' menghitung hari
        days = DateDiff("d", tgl, dateNow)
Finish:
        yearWord = IIf(years = 0, "", years & " Tahun ")
        monthWord = IIf(months = 0, "", months & " Bulan ")
        dayWord = IIf(days = 0, "", days & " Hari ")

        calculateAge = yearWord & monthWord & dayWord
        calculateAge = Trim(calculateAge)
    End Function


    'Fungsi untuk memanggil fungsi CalculateAge
    Private Sub TestHitungUmur()
        Dim strMsg As String
        Dim tanggalLahir As Date = DateSerial(1980, 5, 20)
        Dim tanggalSekarang As Date = DateSerial(2021, 3, 17)
        strMsg = "Umur : " & calculateAge(tanggalLahir, tanggalSekarang)
        'result = "Umur : 40 Tahun 9 Bulan 25 Hari"
        MsgBox(strMsg)
    End Sub

Pada program di atas, sub TestHitungUmur akan memanggil fungsi CalculateAge dan menampung ke variabel string.

Untuk mencoba langsung, saya telah menyiapkan aplikasi yang dibuat menggunakan Visual Studio 2019.

Untuk mencoba program, silahkan download disini.