Hitung Umur Menggunakan DateDiff pada VB.Net 2010

Menggunakan Fungsi DateDif Untuk Menghitung Selisih

Menghitung selisih tanggal dengan DateDIf
Fungsi DATEDIF digunakan menghitung selisih antara dua tanggal dalam berbagai interval yang berbeda, seperti jumlah hari antara tanggal, bulan atau tahun. Fungsi ini tersedia di semua versi Excel sejak versi 95 akan tapi penggunaan fungsi ini hanya didokumentasikan dalam file bantuan untuk Excel 2000. Untuk beberapa alasan, Microsoft telah memutuskan tidak mendokumentasikan fungsi ini dalam file bantuan dalam versi lain.

Syntax menggunakan fungsi DATEDIF sebagai berikut :
=DATEDIF(Tanggal1, Tanggal2, Interval)
Jika Tanggal1 lebih awal dari Tanggal2, fungsi DATEDIF akan menghasilkan error #NUM!, sedangkan jika format penulisan tanggal baik Tanggal1 dan Tanggal2 tidak valid maka akan menghasilkan error #VALUE. Lihat disini jika ingin menghilangkan pesan error sebuah formula

Nilai Interval yang umum digunakan dalam fungsi DATEDIF antara lain :
  • d : semua hari
  • m : semua bulan
  • y : semua tahun
  • yd : menghitung selisih hari dalam satu tahun
  • ym : menghitung selisih bulan dalam satu tahun
  • md : menghitung selisih hari dalam satu bulan
Untuk lebih jelasnya lihat cara penggunaannya disini

Jika interval digunakan dalam sebuah formula, maka penulisannya harus apit dengan tanda petik, contoh :
=DATEDIF(Tanggal1, Tanggal2,"m")

Jika interval diambil dari sebuah sel, maka penulisan interval tidak menggunakan tanda petik, contoh :
=DATEDIF(Tanggal1, Tanggal2, A1)
dengan catatan : sel A1 seharusnya berisi dengan nilai m bukan "m"

Ambil contoh dari sebuah data seperti berikut :
A1
B1
12 Juli 201013 September 2012

Jika ingin melihat usia dari data seperti contoh diatas, maka formulanya seperti berikut :
Formula
Hasil
=DATEDIF(A1,A2,"d")794
selisih hari secara keseluruhan
=DATEDIF(A1,A2,"m")26
=DATEDIF(A1,A2,"y")2
=DATEDIF(A1,A2,"yd")63
terhitung mulai 12 juli s.d 13 september
=DATEDIF(A1,A2,"ym")2
terhitung mulai juli s.d september
=DATEDIF(A1,A2,"md")1
terhitung dari tanggal 12 s.d 13
=DATEDIF(A1,A2,"y")&" tahun"2 tahun
=DATEDIF(A1,A2,"y")& " tahun "&DATEDIF(A1,A2,"d")&" hari"2 tahun 794 hari
=DATEDIF(A1,A2,"y")& " tahun "&DATEDIF(A1,A2,"m")&" bulan"2 tahun 26 bulan
=DATEDIF(A1,B1,"y")&" tahun "&DATEDIF(A1,B1,"ym")&" bulan "&   DATEDIF(A1,B1,"md")&" hari"2 tahun 2 bulan 1 hari

Selamat bereksperimen
Semoga ada guna dan manfaatnya...


Sumber Informasi :
http://www.rumahexcel.com/2012/11/menggunakan-fungsi-datedif-untuk.html#ixzz39chYjFDd


----------------------------------------------------------------------------------------------------------
Atau Bisa juga dengan :
----------------------------------------------------------------------------------------------------------

Mencari Selisih Tanggal dan Bulan VB.Net

 Sumber : http://tidipia-comp.blogspot.com/2011/12/mencari-selisih-tanggal-dan-bulan-vbnet.html

Masih dengan tema tanggal, berikut cara untuk mencari selisih tanggal dan bulan antara data tanggal pertama dan data tanggal kedua. Tidak sulit kok, karena .Net sudah menyertakan fungsi tersebut dengan menggunakan "DateDiff" , dibawah adalah contoh penggunaanya saja :

Disini untuk data rentang tanggalnya saya gunakan contoh dengan menggunakan DateTimePicker dan nilai kembali dengan tipe data Integer.
Ok, masukan dua buah DateTimePicker ke dalam form, kemudian ubah namanya :
Untuk tanggal awal ubah menjadi "dtPicker1", dan rentang tanggal akhir-nya dtPicker2.

Menghitung selisih tanggal :
Private Function HitungTanggal() As Integer
Return DateDiff(DateInterval.Day, dtPicker1.Value.Date, dtPicker2.Value.Date)
End Function

Menghitung selisih bulan :
Private Function HitungBulan() As Integer
Return DateDiff(DateInterval.Month, dtPicker1.Value.Date, dtPicker2.Value.Date)
End Function

Jika yang dicari selisih tanggal awal atau tanggal akhirnya hari ini, ganti dtPicker1/dtPicker2 dengan Date.Now .

Nah, pada aplikasi penggajian biasanya sering membutuhkan fungsi untuk menghitung jumlah hari juga, tapi tidak termasuk hari sabtu/minggu atau mencari jumlah hari kerja. Bagaimanakah caranya ? Berikut cuplikan syntax-syntax pada fungsi tersebut :

Private Function HitungHariKerja() As Integer
Dim tmpDate = Date.Now
Dim intResult As Integer = DatePart(DateInterval.Day, DateAdd(DateInterval.Day, -1, _
DateAdd(DateInterval.Month, 1, DateAdd(DateInterval.Day, _
DatePart(DateInterval.Day, Date.Now) + 1, Date.Now))))

For i As Integer = 0 To intResult
If Weekday(tmpDate) = 1 Then 'hari minggu (1)
intResult += -1
End If

If Weekday(tmpDate) = 7 Then 'hari sabtu (7)
intResult += -1
End If

tmpDate = DateAdd(DateInterval.Day, 1, tmpDate)
Next

Return intResult
End Function

Fungsi diatas jumlah hari kerja yang dicari adalah bulan dari tanggal sekarang, syntax nya terdapat pada deklarasi pertama kali (Dim tmpDate = Date.Now). Jika anda hendak mencari jumlah hari kerja bulan berikutnya atau bulan lalu, "Date.Now" pada deklarasi "tmpDate" bisa dikombinasikan dengan fungsi "DateAdd". Misalkan anda ingin menambahkan dua bulan berikutnya dari sekarang :
Dim tmpDate = DateAdd(DateInterval.Month, 2, Date.Now)

atau dua bulan lalu dari sekarang :
Dim tmpDate = DateAdd(DateInterval.Month, -2, Date.Now)

Bagaimana penjelasan saya kira-kira? apakah mudah dimengerti? Jika ada pertanyaan, saran, kritik atau masukan (cacian dan makian tidak termasuk) silahkan tinggalkan komentar dibawah. Terima kasih sudah berkunjung, semoga bermanfaat.
Previous
Next Post »

2 komentar

Click here for komentar
Unknown
admin
12 Mei 2015 pukul 01.15 ×

Master gmn jika dlm bulan tersebuat ada tgl merah/libur nasional,
mohon pencerahaannya,mksh

Reply
avatar
ABU SAYRA
admin
10 Oktober 2017 pukul 21.41 ×

assalamu'alaikum
mohon maaf, apa pernah membuat aplikasi remainder
contoh tanggal awal 10:10:2010 dan tanggal akhir 10:10:2012
dan mulai dari tanggal awal ke tanggal akhir itu harus ada remainder setiap 5 bulan misalnya.

apa bisa bantu saya dengan kasus seperti itu ?

Reply
avatar
Thanks for your comment