Mencari Selisih Tanggal dan Bulan Menggunakan Fungsi Datediff

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.
_____________________________________________________________________________________________
Sumber : 
http://tidipia-comp.blogspot.com/2011/12/mencari-selisih-tanggal-dan-bulan-vbnet.html
Mencari Selisih Tanggal dan Bulan Menggunakan Fungsi Datediff Mencari Selisih Tanggal dan Bulan Menggunakan Fungsi Datediff Reviewed by Syawaluddin Amin, S.Kom on Juni 14, 2013 Rating: 5

2 komentar:

  1. Tutarni : Terima kasih atas tutorial yang bermanfaat, akan di coba ya semoga berhasil. Sekali lagi terima kasih :)

    BalasHapus

Diberdayakan oleh Blogger.