Skip to main content

AccessTr.neT


tarih hesaplatma

tarih hesaplatma

#19
merhabalar, ben de bu kodu aşağıdaki gibi (çay molalarını da hesaba katarak) programda kullanıyorum ama cuma günleri fazladan yarım saat mola veriliyor ve bayram günlerini (resmi ve dini bayramlar) atlatmayı nasıl yapabilirim? yardımcı olursanız sevinirim:

Function BitisBuL(BTarih, Sure, MesaiBas1, MesaiBit1, MesaiBas2, MesaiBit2, MesaiBas3, MesaiBit3, MesaiBas4, MesaiBit4)

'    MesaiBas1: 08:00
'    MesaiBit1: 10:00
'    MesaiBas2: 10:15
'    MesaiBit2: 12:30
'    MesaiBas3: 13:00
'    MesaiBit3: 15:30
'    MesaiBas4: 15:45
'    MesaiBit4: 18:00
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$(MesaiBit4, "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
                    '1.Çay 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
                    'Öğle Paydosuysa
                    If (Format$(DimX, "hh:nn:ss") >= MesaiBit2) And (Format$(DimX, "hh:nn:ss") < MesaiBas3) Then
                        DimX = Format$(DimX, "dd.mm.yyyy") & " " & Format$(MesaiBas3, "hh:nn:ss")
                        DimX = DateAdd("n", 1, DimX)
                Else
                    '2.Çay Paydosuysa
                    If (Format$(DimX, "hh:nn:ss") >= MesaiBit3) And (Format$(DimX, "hh:nn:ss") < MesaiBas4) Then
                        DimX = Format$(DimX, "dd.mm.yyyy") & " " & Format$(MesaiBas4, "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
        End If
      End If
    Next
        BitisBuL = DimX
   
CIKIS: Exit Function
hata: Resume CIKIS
End Function
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da