Skip to main content

AccessTr.neT


Perşembesiz İki Tarih Arasındaki İş Günü Hesaplama (Farklı Bir Konu)

Perşembesiz İki Tarih Arasındaki İş Günü Hesaplama (Farklı Bir Konu)

Çözüldü #1
Öncelikle yardımlarınız için şimdiden teşekkür ederim.

Uzun zamandır siteyi takip etmekteyim ve problemim ile ilgili bütün konuları taradım diyebilirim. Lakin her hangi bir örneğe rastlayamadım.

Şöyle ki; 3 lü vardiya sistemine göre çalışmaktayız ve hafta tatillerimiz Perşembe, Cuma, Cumartesi ve Pazar günleri olmak üzere haftanın bu dört gününe dağılmıştır.

Örneğin, Hafta Tatili Perşembe günü olan bir personelimizin senelik izin kullanmak istedi. Ben İzne ayrıldığı tarih ile iş başı yapacağı tarihi Perşembe günlerini dahil etmeden hesaplatmak istiyorum.

Sitede Hafta tatili Cumartesi ve Pazar olan örnekler ile Hafta tatili sadece pazar günü olan örnekler mevcut. Ama hafta içi bir gün için hiç örnek bulamadım.


Ekteki örnek, hafta tatili c.tesi ve pazar günü olanlar içindir. Bu örnekte İzne Başlama tarihi ile İzin Bitiş tarihi arasında olan C.tesi ve Pazar günlerini saymamaktadır. Ben bu örnekteki kodları, İzne Başlama tarihi ile İzin Bitiş tarihi arasında olan sadece perşembe günlerini saymasın ( diğer tüm günleri saysın) olarak bir türlü uyarlayamadım.

Bunu Vba kodu ile yapma imkanımız var mıdır?
.rar Perşembesiz_İki_tarih_Arası.rar (Dosya Boyutu: 33,16 KB | İndirme Sayısı: 5)
Son Düzenleme: 03/01/2019, 11:26, Düzenleyen: toprak_tan.
Cevapla
#2
aşağıdaki kodlama istediğim gibi çalışmıyor, neyi yanlış yaptığımı da bulamadım.

Function isgunuPersembesiz(txt_Izin_Baslangic_Tarihi, txt_Is_Yerine_Katilis_Tarihi)

Dim hafta As Integer
Const PERSEMBE = 5

Select Case Weekday(txt_Izin_Baslangic_Tarihi)

Case PERSEMBE

txt_Izin_Baslangic_Tarihi = txt_Izin_Baslangic_Tarihi + 1

End Select

Select Case Weekday(txt_Is_Yerine_Katilis_Tarihi)

Case PERSEMBE

txt_Is_Yerine_Katilis_Tarihi = txt_Is_Yerine_Katilis_Tarihi - 1

End Select

hafta = DateDiff("ww", txt_Izin_Baslangic_Tarihi, txt_Is_Yerine_Katilis_Tarihi)
isgunuPersembesiz = hafta * 6 + Weekday(txt_Is_Yerine_Katilis_Tarihi) - Weekday(txt_Izin_Baslangic_Tarihi)

If isgunuPersembesiz < 0 Then isgunuPersembesiz = 0

End Function
Son Düzenleme: 03/01/2019, 11:46, Düzenleyen: toprak_tan.
Cevapla
#3
Örneğinizin düzenlenmiş hali ektedir, forma ayrıca gün seçimi için açılan kutu eklendi. İnceleyip olumlu/olumsuz bildirimde bulununuz.
.rar Perşembesiz İki tarih Arası_sld.rar (Dosya Boyutu: 28,14 KB | İndirme Sayısı: 13)
Cevapla
#4
Ozan Hocam, ben sadece perşembe demiştim siz bütün günler için hesap yaptırmışsınız. Emeğinize sağlık hocam, kod mükemmel çalışıyor. Ayırdığınız vakit için, uğraşlarınız için ve jestiniz için ayrı ayrı teşekkür ederim.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da