Belirli tatil günlerini dikkate alarak vade hesaplama

1 2
06/02/2017, 23:52

Andruil

Arkadaşlar,

Access dosyasını banka içi özeli olduğu için paylaşamıyorum, anlayışınız için teşekkür ederim.

Aşağıda yazdığım kod daha sadeleştirilebilir ya da size karmaşık gelebilir ama benim işimi çözüyor.


If cboAsliTeminat.Column(0) = 1 Or cboAsliTeminat.Column(0) = 2 Then

txtAsliVade = txtKrediVadesi + 1

 i = 1
TMKontrol1:

 If i < 11 Then
   
   Haftaİçi = Weekday(txtAsliVade, vbMonday)
   TatilK = DCount("USD_Tarih", "tblTatilUSD", "USD_Tarih =#" & Format(txtAsliVade, "mm-dd-yyyy") & "#")
     If TatilK > 0 Or Haftaİçi > 5 Then
       txtAsliVade = txtAsliVade + 1
       GoTo TMKontrol1
       
       Else
         If i = 10 Then
         GoTo TMKontrol2
         End If

       txtAsliVade = txtAsliVade + 1
       i = i + 1
       Haftaİçi = Weekday(txtAsliVade, vbMonday)
       GoTo TMKontrol1
     
     End If
   
   Else
   
   GoTo TMKontrol2:
 
 End If

End If


Kodun mantığını özetlemek gerekirse;
Örneğin kredi kullanım tarihi 01.01.2017. 240 gün vadeli kredi kullanacak. Öncelikle kullanım tarihine kredi vadesini ekleyip 1 gün üzerine koyuyor. Banka iç işleyiş nedeni ile üzerine 10 iş günü ekliyor. Belirlenmiş listedeki tatil günü içerisinde kalıp kalmadığını ve hafta içi gününe denk gelip gelmediğini kontrol ediyor. 10 iş gününü hesaplarken öncelikle 1 koyuyor ve tatil gününe denk gelip gelmediğini ve hafta içi durumunu kontrol ediyor. Tatil gününe ya da haftasonuna denk gelirse i değerini artırmadan son günü artırıp tekrar başa dönüyor. Tatil gününe ve haftasonuna denk gelmezse i değerini ve son günü 1 artırıp tekrar başa dönüyor. i değeri 10 olana kadar bu işlemi yapıyor. Sonrasında son vadeyi bularak kod diğer işlemlerine devam ediyor.

Bu koda iş günü olarak kısa bir tarih eklenecekse kullanılabilir ama uzun bir süre eklenecekse kullanıp kullanmak size kalmış.
1 2