VBA – Složenije datumske funkcije

Kada budete razvijali Office aplikacije, pogotovo vezane za Access i Excel, sigurno će vam zatrebati funkcije za rad sa datumima. Pored ugrađenih datumskih funkcija, a na osnovu njih, možemo izgraditi mnoštvo nama prilagođenih procedura i funkcija za rad sa datumima. Kao primer onog što možete napraviti od postojećih funkcija, predstavićemo vam nekoliko izvedenih funkcija koje će vam pomoći u radu, i možda vam dati ideju za neke složenije procedure.

U prvoj funkciji ćemo videti kako možemo dobiti, recimo datum prvog dana u mesecu u odnosu na tekući ili ulazni datum:


Function PrviUMesecu(UlazniDatum As Date)
Dim D As Integer, M As Integer, G As Integer

If IsNull(UlazniDatum) Then
PrviUMesecu = Null
Else
D = Day(UlazniDatum)
M = Month(UlazniDatum)
G = Year(UlazniDatum)
PrviUMesecu = DateSerial(G, M, 1)
End If
End Function


Sledeća funkcija vraća poslednji datum u mesecu, u odnosu na ulazni datum:


Function PoslednjiUMesecu(UlazniDatum As Date)
Dim D As Integer, M As Integer, G As Integer

If IsNull(UlazniDatum) Then
PoslednjiUMesecu = Null
Else
D = Day(UlazniDatum)
M = Month(UlazniDatum)
G = Year(UlazniDatum)
‘pronalazimo pocetni datum sledeceg meseca,
‘a onda vracamo jedan dan
PoslednjiUMesecu = DateAdd(„m“, 1, DateSerial(G, M, 1)) – 1
End If
End Function


A evo kako može da izgleda funkcija koja vraća isti dan u sledećem mesecu (odnosno prethodnom), u odnosu na tekući (ulazni datum):


Function SledeciMesec(UlazniDatum As Date)
SledeciMesec = DateAdd(„m“, 1, UlazniDatum)
End Function

Function PrethodniMesec(UlazniDatum As Date)
PrethodniMesec = DateAdd(„m“, -1, UlazniDatum)
End Function

Pratite Krstaricu na www.krstarica.com