Agus's Virtual House |
Griya | Aku | Artikel | Download | Link | Buku Tamu | E~mail | Agus Suhartono |
Fungsi-Fungsi Tanggal Visual Basic TambahanVisual Basic telah banyak memberikan fungsi-fungsi yang berhubungan dengantipe data Date. Tetapi kita tetap akan kekurangan jika menghadapi kasus-kasus yang lebih spesifik. Contoh-contoh kasus yang kita hadapi misalnya:
Saya telah membuat beberapa fungsi yang dapat Anda gunakan. Penjelasannya ada di dalam Source Code-nya. Silahkan disimak dan digunakan. Dan jika ada bug atau salah ketik, harap beritahu saya lewat agussmg@n2software.com. '//******************************************************* '// File Name : DATE.BAS '// Module Name : modDate.Bas '// Description : Contents date functions '// that not suported by Visual Basic. '// Author : Agus Suhartono(agussmg@n2software.com) '// http://agus.cjb.net '// Date : 29 June 1998 - 05 May 1999 '// '// License: '// Permission is given without restriction to use and '// distribute the program provided that it is not '// modified in any way without the author 's permission. '// '// Disclaimer: '// The author disclaims all liability for its use or '// for problems, data corruption, data loss, or other '// loss that may result from the use of this program. '// '//*******************// Option Explicit '// Menentukan apakah suatu tanggal adalah tahun kabisat. Public Function DateIsLeap(rvDate As Variant) As Boolean Dim lYear As Long '// Cek tipe data parameter. If IsDate(rvDate) Then lYear = Year(rvDate) ElseIf IsNumeric(rvDate) Then lYear = CLng(rvDate) Else Err.Raise 12 Exit Function End If If ((lYear Mod 4) = 0) And _ ((lYear Mod 100) <> 0) Then DateIsLeap = True ElseIf ((lYear Mod 100) = 0) And _ ((lYear Mod 400) = 0) Then DateIsLeap = True Else DateIsLeap = False End If End Function '// Meng-konversi tanggal ke tanggal terakhir dengan '// bulan dan tahun tetep sama. Biasanya digunakan untuk '// konfirmasi apakah akan tutup bulan atau tidak ketika '// pada akkhir bulan. Public Function DateToLast(rdtDate As Date) As Date DateToLast = DateAdd("d", _ (DayPerMonth(rdtDate) - Day(rdtDate)), _ rdtDate) End Function '// Meng-konversi tanggal ke tanggal 1 dengan '// bulan dan tahun tetep sama. Public Function DateToFirst(rdtDate As Date) As Date DateToFirst = DateAdd("d", ((-1 * Day(rdtDate)) - 1), _ rdtDate) End Function '// Menghitung jumlah hari per bulan. Public Function DayPerMonth(rdtDate As Date) As Integer Dim iMonth As Integer Dim iDayPerMonth As Integer iMonth = Month(rdtDate) '// Jumlah hari per bulan tergantung ' bulan yang bersangkutan. Select Case iMonth Case 4, 6, 9, 11 '// Month: 4, 6, 9, 11 = 30 days iDayPerMonth = 30 Case 2 '// Bulan February : If DateIsLeap(rdtDate) Then '// leap = 29 days iDayPerMonth = 29 Else '// non leap = 28 days iDayPerMonth = 28 End If Case Else '// other month= 31 days. iDayPerMonth = 31 End Select DayPerMonth = iDayPerMonth End Function '// Menentukan apakah suatu tanggal berada di akhir bulan. Public Function IsLastDay(rdtDate As Date) As Boolean IsLastDay = (Day(rdtDate) = DayPerMonth(rdtDate)) End Function '// Menentukan nama bulan dari nomor bulan. Public Function NumToStrMonth(riMonth As Integer) Dim sFormat As String NumToStrMonth = _ Trim( Format(DateSerial(1990, riMonth, 1), _ "MMMM") _ ) End Function '// Konversi Nama bulan ke Angka bulan Public Function StrMonthToNum(rstrMonth As String) As Integer Dim iMonth As String Dim i As Integer iMonth = 0 For i = 1 To 12 If Trim(rstrMonth) = NumToStrMonth(i) Then iMonth = i Exit For End If Next StrMonthToNum = iMonth End Function '// Konversi VB date Type ke SQL date type. '// Biasanya digunakan untuk membuat SQL dengan parameter '// ditentukan oleh user dari textbox. Public Function DateToSQL(rdtDate As Date) As String DateToSQL = "#" & Format(rdtDate, "m/d/yy") & "#" End Function '// Konversi Angka bulan ke Angka Romawi. '// Biasanya digunakan untuk membuat nomor transaksi '// yang mengandung bulan. Mis: 01/XI/AGUS/99 Public Function MonthToRoma(Optional rvDate As Variant) Dim iMonth As Integer If IsMissing(rvDate) Then iMonth = Month(Date) Else Select Case VarType(rvDate) Case vbDate iMonth = Month(rvDate) Case vbInteger iMonth = rvDate End Select End If Select Case iMonth Case 1 MonthToRoma = "I" Case 2 MonthToRoma = "II" Case 3 MonthToRoma = "III" Case 4 MonthToRoma = "IV" Case 5 MonthToRoma = "VI" Case 6 MonthToRoma = "VII" Case 7 MonthToRoma = "VIII" Case 8 MonthToRoma = "IX" Case 10 MonthToRoma = "X" Case 11 MonthToRoma = "XI" Case 12 MonthToRoma = "XII" Case Else MonthToRoma = "" End Select End Function '// Konversi VB date type ke Crystal Report date type. Public Function DateToCrystal(rdtDate As Date) As String DateToCrystal = "Date(" & Trim(Str(Year(rdtDate))) & _ "," & _ Trim(Str(Month(rdtDate))) & _ "," & _ Trim(Str(Day(rdtDate))) & ")" End Function '// Menghitung umur saat ini dari tanggal(lahir) yang '// ditentukan. Public Function DateToAge(rdtDate As Date) As Integer Dim iYear1 As Integer, iMonth1 As Integer, iDay1 As Integer Dim iYear2 As Integer, iMonth2 As Integer, iDay2 As Integer Dim iAge As Integer iYear1 = Year(rdtDate) iMonth1 = Month(rdtDate) iDay1 = Day(rdtDate) iYear2 = Year(Date) iMonth2 = Month(Date) iDay2 = Day(Date) iAge = iYear2 - iYear1 If iMonth2 < iMonth1 Then iAge = iAge - 1 ElseIf iMonth2 = iMonth1 Then If iDay2 < iDay1 Then iAge = iAge - 1 End If End If DateToAge = iAge End Function [ Top ] |
Griya | Aku | Artikel | Download | Link | Buku Tamu | E~mail | Agus Suhartono |