Kod:
Function BitisBuL(BTarih, Sure, MesaiBas1, MesaiBit1, MesaiBas2, MesaiBit2)
'BaşlamaTarihi: 15.03.2010 09:30
' Süre(dk): 190
' MesaiBas1: 08:00
' MesaiBit1: 12:00
' MesaiBas2: 13:00
' MesaiBit2: 18:30
On Error GoTo HATA
Dim DimX
DimX = BTarih
For i = 1 To Sure
'Cumartesi ise
If Weekday(DimX) = 7 Then
DimX = DateAdd("d", 2, DimX)
DimX = Format$(DimX, "dd.mm.yyyy") & " " & Format$(MesaiBas1, "hh:nn:ss")
DimX = DateAdd("n", 1, DimX)
Else
'Pazar ise
If Weekday(DimX) = 1 Then
DimX = DateAdd("d", 1, DimX)
DimX = Format$(DimX, "dd.mm.yyyy") & " " & Format$(MesaiBas1, "hh:nn:ss")
DimX = DateAdd("n", 1, DimX)
Else
'Mesai bitmişse
If Format$(DimX, "hh:nn:ss") >= Format$(MesaiBit2, "hh:nn:ss") Then
DimX = DateAdd("d", 1, DimX)
DimX = Format$(DimX, "dd.mm.yyyy") & " " & Format$(MesaiBas1, "hh:nn:ss")
DimX = DateAdd("n", 1, DimX)
Else
'Öğle Paydosuysa
If (Format$(DimX, "hh:nn:ss") >= MesaiBit1) And (Format$(DimX, "hh:nn:ss") < MesaiBas2) Then
DimX = Format$(DimX, "dd.mm.yyyy") & " " & Format$(MesaiBas2, "hh:nn:ss")
DimX = DateAdd("n", 1, DimX)
Else
'Mesai saati ise
DimX = DateAdd("n", 1, DimX)
End If
End If
End If
End If
Next
BitisBuL = DimX
CIKIS: Exit Function
HATA: Resume CIKIS
End Function