Attribute VB_Name = "Module11" Private Function LaskutusJakso(ByVal Pvm As Date, _ ByRef Alku As Date, ByRef Loppu As Date) Alku = DateSerial(Year(Pvm), Month(Pvm), 1) Loppu = DateSerial(Year(Pvm), Month(Pvm), 21) End Function Private Sub TestaaLaskutusJakso() Dim P1 As Date Dim P2 As Date LaskutusJakso Date, P1, P2 MsgBox P1 & "-" & P2 End Sub Sub PvmTulostus() MsgBox "Päivämäärä ja aika: " & Now & Chr(10) & _ "Päivämäärä: " & Now & Chr(10) & _ "Aika: " & Format((Now - Date), "hh:nn:ss") End Sub Sub KellonaikaTesti() Dim Aika1 As Double Dim Aika2 As Double Dim ApuStr As String Aika1 = Now For LP = 1 To 90000000 'Muuta silmukan loppuarvoa tarvittaessa Next LP Aika2 = Now If Aika1 = Aika2 Then ApuStr = "Täsmälleen samat kellonajat" Else ApuStr = "Hieman eri kellonajat" End If MsgBox Aika1 & " - " & Format(Aika1, "hh:nn:ss") & _ Chr(10) & _ Aika2 & " - " & Format(Aika2, "hh:nn:ss") & _ Chr(10) & _ ApuStr End Sub Sub YMDTesti() Dim D As Date D = "24.12.2007" MsgBox Year(D) & "-" & Month(D) & "-" & Day(D) End Sub Sub HMSTesti() Dim D As Date D = "24.12.2007 18:12:55" MsgBox Hour(D) & "-" & Minute(D) & "-" & Second(D) End Sub Private Function HaeViikonpPaiva(ByVal Pvm As Date, _ Optional ByVal Lyhyt As Boolean = True) As String 'Rivillä 2 asetetaan viikonpäivän nimi muutttujaan VPNimi. 'Sulkeiden sisällä selvitetään ensin päivämäärää vastaavan viikonpäivän numero funktiokutsulla Weekday(Pvm, vbMonday). 'Jos siis muuttujan Pvm määräämä viikopäivä on vaikkapa torstai, tämä funktiokutsu evaluoidaan arvoksi 4. 'Lisäksi funktiolle WeekdayName annetaan parametrina muuttuja Lyhyt sellaisenaan ja sitä pyydetään hakemaan viikon aloittava päivä koneen maa-asetuksista. 'Kun koneen maa-asetukset ovat suomalaiset, vakioarvot vbMonday ja vbUseSystemDayOfWeek tuottavat saman lopputuloksen. 'Koodin oikeellisuuden kannalta ei liene suurtakaan eroa kumpaa käyttää, kunhan maa-asetukset ovat oikein. 'Rivillä 3 asetetaan haettu päivämääräteksti funktion vastaukseksi. Dim VPNimi As String VPNimi = WeekdayName(Weekday(Pvm, vbMonday), Lyhyt, vbUseSystemDayOfWeek) HaeViikonpPaiva = VPNimi End Function Private Sub TestaaHaeViikonpPaiva() MsgBox HaeViikonpPaiva(Date) & " - " & _ HaeViikonpPaiva(Date, True) & " - " & _ HaeViikonpPaiva("24.Joulu", False) & " - " & _ HaeViikonpPaiva(DateSerial(1995, 9, 4)) End Sub Public Sub PvmMerkkijonosta() Dim PvmS As String Dim PvmD As Date PvmS = "20071224" PvmD = DateSerial(Left(PvmS, 4), Mid(PvmS, 5, 2), Right(PvmS, 2)) MsgBox Format(PvmD, "dd.mm.yyyy") End Sub Sub DateSerialLaskut() MsgBox DateSerial(2007, 10 - 2, 15) '15.8.2007 MsgBox DateSerial(2007, 1 - 2, 15) '15.11.2006 MsgBox DateSerial(2007, 1, 15 - 250) '10.5.2006 End Sub Public Sub PvmValue_EriTavoilla() Dim Pvm As Date Pvm = DateValue("24.12.2006") Pvm = DateValue("12.24.2006") Pvm = DateValue("2006.12.24") Pvm = DateValue("12.24") Pvm = DateValue("24.12") End Sub Sub TimeSerialTesti() MsgBox TimeSerial(8, 45, 0) '8:45:00 MsgBox TimeSerial(12, 45 * 13, 0) '21:45:00 MsgBox TimeSerial(12345, 0, 0) '28.5.1901 9:00:00 End Sub