Bang Fungsi ini saya coba kenapa ya pada saat tanggal saya atur tanggal Lahir 03-08-08 dan tanggal sekarang 04-09-08 akan menghasilkan Total Bulan "0" Jumlah Tahun "0" Jumlah Bulan "0" Jumlah Hari "1" Seharusnyakan satubulan satu hari tetapi jika kita atur Tgllahir 03-09-08 dan tgl sekarang 04-09-08 menghasilkan Total Bulan "-1" Jumlah Tahun "0" Jumlah Bulan "-1" Jumlah Hari "1" Seharusnyakannya kan akan menjadi Jumlah Bulan Nol Jumlah hari satu
--- In [email protected], "aksan kurdin" <[EMAIL PROTECTED]> wrote: > > Menghitung umur ....., > Ada dua parameter, tanggal lahir dan tanggal sekarang (now() or date ()) > Intinya ada diperhitungan bulan, sepertinya datediff dengan parameter "m" > adalah jawabannya, tapi tunggu dulu. > Kita ambil contoh tanggal lahir 15 Januari 2008. > > Pada tanggal 1 Februari 2008, berapa umurnya ? sebulan ? belum kan ? karena > belum sampe tanggal 15. Hitungan sebulan nanti kalau tanggal 15 ke atas. > Jadi kita perlu parameter perbandingan tanggalnya. Kalau tgl lahir (angka > tanggalnya saja) kurang dari tgl sekarang, berarti hasil datediff di atas > harus dikurangi dengan satu. Jadilah fungsi: > > Function JumlahBulan(tglMulai As Date, tglAkhir As Date) As Integer > Dim numBln As Integer > numBln = DateDiff("m", tglMulai, tglAkhir) > If Day(tglMulai) < Day(tglAkhir) Then > numBln = numBln - 1 > End If > JumlahBulan = numBln > End Function > > Fungsi di atas akan memberikan kita total bulan sejak tanggal lahir sampai > sekarang. Memecahnya menjadi tahun dan bulan sangat mudah: > Jumlah tahun = JumlahBulan \ 12 ---> (pembagian integer, hanya nilai > integer di ambil, pecahan di buang) > Jumlah bulan = JumlahBulan mod 12 ---> (modulus, sisa dari pembagian 12, > pecahannya yang diambil tapi bulat lo ya) > > > Sekarang bagaimana dengan jumlah hari sisanya ? > Dengan contoh di atas, tanggal lahir 15 Januari 2008, kalau kita cek di > tanggal 25 Maret 2008, kan mudah, 15 Januari ke 15 Maret ada 2 bulan, terus > 15 Maret ke 25 Maret ada 10 hari. > > > |<---10--->| > +---------------o---------------+---------------+---------------+ > ---------------+----------o-----+ > 1/1 15/1 > 1/2 15/2 1/3 15/3 25/4 1/4 > > > Sekarang bagaimana kalau ngecek di tanggal 10 Maret 2008 ? > Yup betul, karena belum sampai tanggal 15, maka ngitungnya dari 15 Januari > sampai 15 Pebruari ada 1 bulan, dan dari 15 Pebruari ke 10 Maret ada > sejumlah datediff("d",tglLahir sebulan lalu, tglSekarang). > > |<---------24----- ---->| > +---------------o---------------+---------------+---------------+ > ------o--------+----------------+ > 1/1 15/1 > 1/2 15/2 1/3 10/3 15/3 1/4 > > Kita bisa bikin fungsi berikut : > > Function JumlahHari(tglMulai As Date, tglAkhir As Date) As Integer > Dim tgMulai > tgMulai = DateSerial(Year(tglAkhir), Month(tglAkhir), Day (tglMulai)) > If Day(tgMulai) > Day(tglAkhir) Then > tgMulai = DateAdd("m", -1, tgMulai) > End If > JumlahHari = DateDiff("d", tgMulai, tglAkhir) > End Function > > > Eitt... > Masih ada tapinya, bagaimana untuk kasus yang belum sebulan ? contohnya di > cek pada tanggal 10/2-2008. > Ah mana ada sih pak pegawai masuk umur belum sebulan ? > Tapi bagaimana kalau mau menghitung anak pegawai tersebut ? mungkin saja > bukan ? > Nah bagaiamana caranya ? > Siapa yang bisa ? > > |<---------26--------->| > +---------------o---------------+------o--------+---------------+ > ---------------+----------------+ > 1/1 15/1 1/2 10/2 15/2 1/3 > 15/3 1/4 > > Kalau sudah bisa, maka bentuk query ini bisa menjawab pertanyaan berapa umur > seorang pegawai dalam tahun - bulan - hari: > > SELECT > Table1.Nama, Table1.NIK, Table1.TanggalLahir, > Date() AS TanggalSekarang, > JumlahBulan([TanggalLahir],Now()) AS TotBulan, > [TotBulan]\12 AS JumTahun, [TotBulan] Mod 12 AS JumBulan, > JumlahHari([TanggalLahir],[TanggalSekarang]) AS JumHari > FROM Table1; > > > Aksan Kurdin > > On 5/8/08, Darsono <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > > > > Sdr. Herry > > > > Mungkin ini bisa sebagai contoh dasar ..... > > > > untuk suhu-suhu yang lain, > > mohon koreksi kalau masih kurang tepat > > > > darsono > > > > --- Harry siswanto <[EMAIL PROTECTED]> wrote: > > > > > dear senior... > > > > > > (Pernah tahu tapi lupa)...:-) :-) > > > > > > Bagaimana bentuk di Query / scriptnya > > > untuk mencari Umur seseorang > > > dengan: tanggal sekarang / Now() - tanggalLahir > > > sehingga ketemu: > > > ..... th > > > ...... Bulan > > > .... hari > > > > > > Terima kasih sebelumnya.. > > > > > > > > > regards > > > harry > > > > > > > __________________________________________________________ > > Joint with us, you will earn some cash when you make some disscusion > > http://www.mylot.com/?ref=darsono72 > > __________________________________________________________ > > > > Atau yang ini saya yakin anda tertarik > > http://www.UangGampang.Com/?id=darsono72 > > __________________________________________________________ > > > > > > __________________________________________________________ > > Be a better friend, newshound, and > > know-it-all with Yahoo! Mobile. Try it now. > http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ > > > > > > -- > Aksan Kurdin >

