Ako se bavite razvojem aplikacija u MS Access-u sigurno ste se već sreli sa nekom od funkcija za rad sa datumima. U ovom prilogu predstavićemo vam funkciju koja izračunava broj radnih dana između dva datuma. Ovo može biti jako korisno u firmama prilikom obračunavanja plata. Funkciji predajemo dva podatka (tipa Variant) koja predstavljaju početni i krajnji datum. Rezultat koji vraća funkcija je celobrojna vrednost koja predstavlja ukupan broj radnih dana između dva datuma. Evo i same funkcije:
Function Radni_Dani(PocetniDatum As Variant,
KrajnjiDatum As Variant) As Integer
' Napomena: Funkcija nece racunati dane praznika.
Dim BrojNedelja As Variant
Dim DatumPriv As Variant
Dim PoslednjiDani As Integer
PocetniDatum = DateValue(PocetniDatum)
KrajnjiDatum = DateValue(KrajnjiDatum)
BrojNedelja = DateDiff("w", PocetniDatum, KrajnjiDatum)
DatumPriv = DateAdd("ww", BrojNedelja, PocetniDatum)
PoslednjiDani = 0
Do While DatumPriv < KrajnjiDatum
If Format(DatumPriv, "ddd") <> "Sun" And _
Format(DatumPriv, "ddd") <> "Sat" Then
PoslednjiDani = PoslednjiDani + 1
End If
DatumPriv = DateAdd("d", 1, DatumPriv)
Loop
Radni_Dani = BrojNedelja * 5 + PoslednjiDani
End Function
U samom programskom kodu možemo videti nekoliko ugrađenih funkcija, pa ćemo ih bliže pojasniti:
- DateValue - pretvara datum koji je u tekst formi, u serijski broj
- DateDiff- računa broj kalendarskih sedmica između dva datuma
- DateAdd - na postojeći datum dodaje određeni broj dana, rezultat je dobijeni, novi datum.