Di Access, fungsi DateDiff digunakan untuk menghitung perbedaan di antara dua tanggal atau jam dalam interval tertentu. Interval tertentu ini bisa berupa periode tertentu seperti hari, minggu, bulan, bahkan sampai ke jam atau detik. Jadi, misalnya perbedaan interval tertentu selama dua minggu, satu tahun, 20 jam, dan sebagainya.
Sintaks penulisan fungsi DateDiff adalah sebagai berikut:
Keterangan:
Inteval (interval): wajib diisi, berupa kode dengan tipe data string/text, menunjukkan interval waktu yang digunakan untuk menghitung perbedaan. Kodenya adalah sebagai berikut:
Date1 (tanggal1), Date2 (tanggal2): wajib diisi, merupakan tanggal yang akan dihitung perbedaannya, tipenya Variant (Date) atau Date/Time.
FirstDayOfWeek (hariPertamaMinggu): tidak wajib diisi (opsional), merupakan konstanta yang digunakan untuk menentukan hari pertama dalam satu minggu, tipenya Integer. Jika kosong, maka nilainya 1 (hari Minggu). Berikut ini tabelnya:
FirstWeekOfYear (mingguPertamaTahun): tidak wajib diisi (opsional), merupakan konstanta yang digunakan untuk menentukan minggu pertama dalam satu tahun, tipenya Integer. Jika kosong, maka hari saat tanggal 1 Januari dianggap sebagai minggu pertama. Berikut ini tabelnya:
Untuk menghitung jumlah hari antara tanggal Date1 dan Date2, kita dapat menggunakan "y" atau "d". Bila menggunakan "w", fungsi DateDiff menghasilkan jumlah hari yang dinyatakan pada FirstDayOfWeek di antara dua tanggal itu. Contohnya seperti ini:
akan memberikan hasil yang sama yaitu 16 (16 hari)
Tetapi
hanya menghasilkan 2 (2 Minggu, pada contoh di atas, nilai FirstDayOfWeek adalah Minggu)
Dalam hal ini, jika Date1 jatuh pada hari Senin, DateDiff menghitung berapa jumlah hari Senin sampai tanggal Date2 (ada 2 Senin, yaitu tanggal 20 dan 27 November 2017, tanggal 13 November 2017 tidak ikut dihitung).
Jika nilai "w" diganti dengan "ww" dan kita menggunakan FirstDayOfWeek, maka
akan memberikan hasil 2, karena ada dua Minggu (tanggal 19 dan 26 November 2017) dan 2 Senin (tanggal 20 dan 27 November 2017).
Tetapi:
akan memberikan hasil 3, karena ada tiga Selasa, yaitu tanggal 14, 21 dan 28 November 2017.
Jika Date1 lebih besar dari pada Date2, maka DateDiff menghasilkan nilai negatif. Misalnya seperti ini:
Pada situasi tertentu, kita mungkin hanya ingin menuliskan tanggal dan bulan saja, sedangkan tahun tidak diikutsertakan. Dalam kasus ini, Access membaca tahun sesuai dengan tahun menurut Sistem Operasi Windows. Jadi bila tanggal pada Windows adalah 27 November 2017 (tahun 2017), maka kita bisa menghitung perbedaan dua tanggal seperti contoh berikut ini:
memberikan hasil yang sama dengan
yaitu 3
Berikut ini adalah berbagai macam contoh aplikasi fungsi DateDiff di Access.
Pada contoh di atas, saat menghitung selisih tahun antara tanggal 31 Des 2016 dan 1 Jan 2017, hasilnya adalah 1 (1 tahun), karena kita menggunakan interval tahun ("yyyy"). Dalam hal ini, yang dihitung adalah selisih tahun 2017 dengan 2016, sementara hari (tanggal) dan bulannya tidak dihitung.
Pengaturan fungsi DateDiff mengikuti pengaturan yang ada di Control Panel. Jadi, bila format penanggalan menggunakan Indonesia sebagai acuannya, maka cara menuliskan dan menampilkan hasil juga akan menggunakan penanggalan Indonesia. Demikian juga, penanggalan Amerika di Control Panel juga akan mempengaruhi tampilan DateDiff menjadi penanggalan Amerika juga.
Hal yang sama juga terjadi pada properti Calendar. Bila properti Calendar di Control Panel menggunakan Gregorian, maka tanggal yang digunakan juga menggunakan Gregorian. Demikian pula, bila menggunakan Hijri (Hijriah), maka format penulisan di DateDiff juga menggunakan Hijri (Hijriah).
Berbagai macam contoh aplikasi DateDif di VBA Access melalui Immediate Window |
Sintaks penulisan fungsi DateDiff adalah sebagai berikut:
DateDiff (Interval, Date1, Date2 [,FirstDayOfWeek] [,FirstWeekOfYear])
Keterangan:
Inteval (interval): wajib diisi, berupa kode dengan tipe data string/text, menunjukkan interval waktu yang digunakan untuk menghitung perbedaan. Kodenya adalah sebagai berikut:
Nilai | Deskripsi |
yyyy | Tahun |
q | Kuartal |
m | Bulan |
y | Hari dalam tahun |
d | Hari |
w | Hari dalam minggu |
ww | Minggu |
h | Jam |
n | Menit |
s | Detik |
Date1 (tanggal1), Date2 (tanggal2): wajib diisi, merupakan tanggal yang akan dihitung perbedaannya, tipenya Variant (Date) atau Date/Time.
FirstDayOfWeek (hariPertamaMinggu): tidak wajib diisi (opsional), merupakan konstanta yang digunakan untuk menentukan hari pertama dalam satu minggu, tipenya Integer. Jika kosong, maka nilainya 1 (hari Minggu). Berikut ini tabelnya:
Konstanta | Nilai | Keterangan |
vbUseSystem | 0 | NLS API setting (system) |
vbSunday | 1 | Minggu (default) |
vbMonday | 2 | Senin |
vbTuesday | 3 | Selasa |
vbWednesday | 4 | Rabu |
vbThursday | 5 | Kamis |
vbFriday | 6 | Jumat |
vbSaturday | 7 | Sabtu |
FirstWeekOfYear (mingguPertamaTahun): tidak wajib diisi (opsional), merupakan konstanta yang digunakan untuk menentukan minggu pertama dalam satu tahun, tipenya Integer. Jika kosong, maka hari saat tanggal 1 Januari dianggap sebagai minggu pertama. Berikut ini tabelnya:
Konstanta | Nilai | Keterangan |
vbUseSystem | 0 | NLS API setting (system) |
vbFirstJan1 | 1 | Hari saat tanggal 1 Januari dianggap sebagai minggu pertama |
vbFirstFourDays | 2 | Empat hari pertama pada tahun baru dianggap sebagai minggun pertama |
vbFirstFullWeek | 3 | Tujuh hari pertama pada tahun baru dianggap sebagai minggun pertama |
Untuk menghitung jumlah hari antara tanggal Date1 dan Date2, kita dapat menggunakan "y" atau "d". Bila menggunakan "w", fungsi DateDiff menghasilkan jumlah hari yang dinyatakan pada FirstDayOfWeek di antara dua tanggal itu. Contohnya seperti ini:
DateDiff("y","11/13/2017","11/29/2017"), atau DateDiff("d","11/13/2017","11/29/2017")
akan memberikan hasil yang sama yaitu 16 (16 hari)
Tetapi
DateDiff("w","11/13/2017","11/28/2017"), atau DateDiff("w","11/13/2017","11/29/2017"), atau DateDiff("w","11/13/2017","11/30/2017")
hanya menghasilkan 2 (2 Minggu, pada contoh di atas, nilai FirstDayOfWeek adalah Minggu)
Dalam hal ini, jika Date1 jatuh pada hari Senin, DateDiff menghitung berapa jumlah hari Senin sampai tanggal Date2 (ada 2 Senin, yaitu tanggal 20 dan 27 November 2017, tanggal 13 November 2017 tidak ikut dihitung).
Jika nilai "w" diganti dengan "ww" dan kita menggunakan FirstDayOfWeek, maka
DateDiff("ww","11/13/2017","11/28/2017"), atau DateDiff("ww","11/13/2017","11/30/2017",vbMonday)
akan memberikan hasil 2, karena ada dua Minggu (tanggal 19 dan 26 November 2017) dan 2 Senin (tanggal 20 dan 27 November 2017).
Tetapi:
DateDiff("ww","11/13/2017","11/28/2017", vbThursday)
akan memberikan hasil 3, karena ada tiga Selasa, yaitu tanggal 14, 21 dan 28 November 2017.
Jika Date1 lebih besar dari pada Date2, maka DateDiff menghasilkan nilai negatif. Misalnya seperti ini:
DateDiff("d","11/13/2017","11/2/2017") menghasilkan nilai -11 DateDiff("ww","11/28/2017","11/14/2017") menghasilkan nilai -2
Pada situasi tertentu, kita mungkin hanya ingin menuliskan tanggal dan bulan saja, sedangkan tahun tidak diikutsertakan. Dalam kasus ini, Access membaca tahun sesuai dengan tahun menurut Sistem Operasi Windows. Jadi bila tanggal pada Windows adalah 27 November 2017 (tahun 2017), maka kita bisa menghitung perbedaan dua tanggal seperti contoh berikut ini:
DateDiff("d","27 Nov","30 Nov 2017") DateDiff("d","27 Nov 2017","30 Nov") DateDiff("d","27 Nov","30 Nov")
memberikan hasil yang sama dengan
DateDiff("d","27 Nov 2017","30 Nov 2017")
yaitu 3
Berikut ini adalah berbagai macam contoh aplikasi fungsi DateDiff di Access.
Fungsi | Output | Keterangan |
---|---|---|
DateDiff("h","27 Nov 2017 04:12:12 PM","30 Nov 2017 04:12:12 PM") | 72 | 72 jam |
DateDiff("d",#27 Nov 2017 04:12:12 PM#,"30 Nov 2017 04:12:12 PM") | 3 | 3 hari |
DateDiff("yyyy",#27 Nov 2016 04:12:12 PM#,#30 Nov 2017 04:12:12 PM#) | 1 | 1 tahun |
DateDiff("d",#27 Nov 2016 04:12:12 PM#,#30 Nov 2017 04:12:12 PM#) | 368 | 368 hari |
DateDiff("d",#31 Dec 2016 04:12:12 PM#,#1 Jan 2017 04:12:12 PM#) | 1 | 1 hari |
DateDiff("h",#31 Dec 2016 04:12:12 PM#,#1 Jan 2017 04:12:12 PM#) | 24 | 24 jam |
DateDiff("yyyy",#31 Dec 2016 04:12:12 PM#,#1 Jan 2017 04:12:12 PM#) | 1 | 1 tahun |
DateDiff("n","27 Nov 2017 04:12:12 AM","27 Nov 2017 04:12:12 PM") | 720 | 720 menit (12 jam) |
DateDiff("s","27 Nov 2017 04:12:12 AM","27 Nov 2017 05:12:12 AM") | 3600 | 3600 detik (1 jam) |
Pada contoh di atas, saat menghitung selisih tahun antara tanggal 31 Des 2016 dan 1 Jan 2017, hasilnya adalah 1 (1 tahun), karena kita menggunakan interval tahun ("yyyy"). Dalam hal ini, yang dihitung adalah selisih tahun 2017 dengan 2016, sementara hari (tanggal) dan bulannya tidak dihitung.
Pengaturan fungsi DateDiff mengikuti pengaturan yang ada di Control Panel. Jadi, bila format penanggalan menggunakan Indonesia sebagai acuannya, maka cara menuliskan dan menampilkan hasil juga akan menggunakan penanggalan Indonesia. Demikian juga, penanggalan Amerika di Control Panel juga akan mempengaruhi tampilan DateDiff menjadi penanggalan Amerika juga.
Hal yang sama juga terjadi pada properti Calendar. Bila properti Calendar di Control Panel menggunakan Gregorian, maka tanggal yang digunakan juga menggunakan Gregorian. Demikian pula, bila menggunakan Hijri (Hijriah), maka format penulisan di DateDiff juga menggunakan Hijri (Hijriah).
Bingung
ReplyDeletemakanya belajar
DeleteThis comment has been removed by the author.
ReplyDelete