Admin YM

Jumat, 22 Juli 2011

Bagaimana Menghitung Selisih Dua Tanggal Menggunakan VB6

Kode berikut akan menunjukkan kepada Anda bagaimana caranya menghitung selisih dua buah tanggal yang diketahui dengan menggunakan pemrograman Visual Basic 6. Hasil perhitungan akan memberikan hasil yang mengandung perbedaan di antara dua tanggal tadi dalam format: Hari, Jam:Menit:Detik. Kedua tanggal harus dalam format lengkap. Contoh: Tanggal pertama: 1 Maret 2002 17:18:00, dan tanggal kedua: 1 September 2002 09:42:30. Setelah dihitung, maka hasil akhirnya adalah: 183 hari, 16:24:30. Artinya: Selisih di antara dua tanggal tersebut adalah: 183 hari, 16 jam, 24 menit, dan 30 detik.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
'Deskripsi: Menghitung selisih dua buah tanggal yang diketahui '           lalu menampilkan hasilnya dalam bentuk selisih hari'           dan selisih durasi jam lengkapnya. Contoh: Jika '           tanggal awal  = 01/03/2002 17:18:00 dan '           tanggal akhir = 01/09/2002 09:42:30, maka akan'           menghasilkan --> 183 hari, 16:24:30 '           Artinya: (183 hari, 16 jam, 24 menit, dan 30 detik).'           Tips ini menggunakan fungsi DateDiff'Pembuat  : Masino Sinaga 'Diupload : Minggu, 1 September 2002'Persiapan: 1. Buat 1 Project Standard exe baru dengan 1 Form.'           2. Tambahkan 2 TextBox, 1 Label, dan 1 Timer ke atas Form.'           3. Copy-kan coding berikut ke dalam editor form yang bertalian.'-------------------------------------------------------------------------- 
Option Explicit
 
Function SelisihHariJam(ByVal Awal As Date, _
                        ByVal Akhir As Date) As String
 
  Dim Detik As Long, Hari As Long, Jam As Long
  Dim JamLengkap As String   
  If Awal > Akhir Then
     MsgBox "Tanggal dan waktu awal harus lebih kecil " & vbCrLf & _
            "dari pada tanggal dan waktu akhir", _
            vbCritical, "Peringatan"
     Exit Function
  End If
 
  'Tampung dalam durasi satuan terkecil, yaitu: DETIK  Detik = DateDiff("s", Awal, Akhir)  
 
  'Hitung jumlah jam dgn cara membagi 3600  '(backslash ("\") supaya menghasilkan  'nilai Integer tanpa pembulatan ke atas)  Jam = Detik \ 3600
 
  'Jika jumlah jam lebih besar dari 23  'artinya: lebih dari 1 hari  If Jam > 23 Then
 
     'Hitung jumlah hari dgn cara membagi 24     '(backslash ("\") supaya menghasilkan     'nilai integer tanpa pembulatan ke atas)     Hari = Jam \ 24
 
     'Hitung Durasi Jam dalam hh:mm:ss     JamLengkap = Format((Akhir - Awal), "hh:mm:ss")
 
  Else 'Jika jumlah jam <= 23
     Hari = 0   'maka jumlah hari = nol
     'Hitung Durasi Jam dalam hh:mm:ss     JamLengkap = Format((Akhir - Awal), "hh:mm:ss")
  End If
 
  If Hari = 0 Then  'Jika jumlah hari = 0
     'Tampung hasil akhirnya     SelisihHariJam = JamLengkap
 
  Else  'Jika jumlah hari > 0, tampilkan jumlah harinya
     'Tampung hasil akhirnya     SelisihHariJam = Hari & " hari, " & JamLengkap
  End If
  Exit Function
 
End Function
 
Private Sub Form_Load()
  Timer1.Interval = 500
  Timer1.Enabled = True
  Text1.Text = "01/03/2002 17:18:00"
  'Text2.Text = "01/09/2002 09:42:30"  Text2.Text = Now
End Sub
 
Private Sub Timer1_Timer()
  On Error GoTo PesanError
  Text2.Text = Now
  Label1.Caption = SelisihHariJam(CDate(Text1.Text), _
                      CDate(Text2.Text))
  Exit Sub
PesanError:
  MsgBox "Tanggal atau format-nya salah!", _
         vbCritical, "Error Tanggal"
End Sub
Dari potongan code di atas, parameter pertama milik fungsi SelisihHariJam ditempatkan di control Text1, sedangkan parameter kedua ditempatkan di control Text2, di mana nilainya dibangkitkan oleh control Timer1 dalam interval waktu 1 detik.
Hasil perhitungan ditampilkan di control Label1 berdasarkan perubahan tanggal yang dibangkitkan oleh control Timer1. Tentu, Anda bisa memodifikasi sendiri kode di atas, misalnya dengan menghilangkan control Timer dan menutup kode yang terkait dengan kontrol Timer1, lalu cukup menggunakan fungsi SelisihHariJam saja pada prosedur Form_Load.

0 Comment:

Posting Komentar

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Best Web Host