Giriş Tarihine Göre Eğitim Planlama

1 2 3 4 5 6 7 8 9 10 11
20/01/2020, 18:07

accessman

İyi günler arkadaşlar örnek yok çünkü kotam doldu ve de soru örnek sorusu değil mantık sorusu yani fikir yürütmekle ilgili. Soru da şudur
bir fabrikada 4 vardiyada çalışan 5000 kişi var
her vardiyada çalışan 6 gün çalışıp 2 gün tatil yapıp diğer vardiyaya geçiyor
hergün 4a,4b,4c,4d vardiyalarından birisi 08-16 diğeri 16-24 öteki 24-08 çalışıyor bir vardiyada tatilde oluyor
işe giriş tarihine göre eğitim planlanıyor yani ister yeni ister eski eleman olsun o ay işe girmiş olanlar eğitim alacak
20 sene önce 27 şubatta işe giren ile daha dün şubatın birinde işe girmiş çalışan şubat ayı içerisinde eğitim alacak
yani demem o ki şubatta işe girmiş herkes vardiyası 08:16 arasına denk gelen günde eğitim alacak
peki sıkıntı nerede eğitim için günlere mantıklı dağılım olmalı yani diyelim ki
şubatta toplam işe giren 400 kişi 
şubat ayı içerisinde hafta içi gün sayısı 20
hergün ortalama 20 kişi eğitim alacak ama bunlardan
postasına göre 3 şubatta 08-16 çalışacakları bulup listelemek lazım
hakeza 4,5,6,....şubat diye devam edecek 
nasıl bir mantık yürütmem lazım ki bunu tek tek uğraşmadan bir tıkla accessden listesini alabileyim
08:16 postası 03.01.2020 de değişmiş ve her 6 gün de bir değişiyor
6 gün 4a sonra 6 gün 4b..........
elde ki veriler 
adı 
işe giriş tarihi 
postası
Ben şöyle bir çözümle tarihe göre hangi posta o gün için 08:16 vardiyasında olduğunu buldum
mod = (bugüntarihi - işegiriştarihi)/24
0<x<7 --> 4a
6<x<13 --> 4b
12<x<19 --> 4c
18<x<24 --> 4d
gerisini çözemedim
20/01/2020, 23:35

berduş

1 - vardiyadaki kişiler aynı mı?
2 - vardiyalarin kaydedildiği bir tablo var mı?
3 - eğitim için bir tablo olacak mi?
Diyelim ki ocak ayındayız, şubat ayında kimin hangi gün hangi vardiyada olacağı belli mi daha doğrusu hangi gün hangi vardiya hangi saatte verilerinin kaydedildiği bir tablo
Şubat ayında işe girenlerin sorgusu ile vardiya tablosunun ortak sorgusu oluşturulup ona göre bir işlem yapılabilir.

(20/01/2020, 18:07)accessman yazdı: Ben şöyle bir çözümle tarihe göre hangi posta o gün için 08:16 vardiyasında olduğunu buldum
mod = (bugüntarihi - işegiriştarihi)/24
teorik olarak yaptığınız işlem doğru olabilir ama hiç mi bayram tatili olmadı, izne çıkılmadı, vardiya değiştirilmedi.
Ayrica neden bugünün tarihi? amaciniz şubat ayındaki bir tarihe göre bulmaksa o tarihi yazmanız gerekmez mi?
21/01/2020, 01:40

accessman

(21/01/2020, 00:36)berduş yazdı: Ayrica neden bugünün tarihi?  amaciniz şubat ayındaki bir tarihe göre bulmaksa o tarihi yazmanız gerekmez mi?
Evet haklısınız onu gözden kaçırmışım
21/01/2020, 01:47

accessman

İlk üç sorunuzda evet
Kişi yıllarca aynı 4a da başlayıp onunla emekli oluyor başkasıda 4b de
Her tarihte hangi vardiyanın 8.16 olacağı tablosu var
21/01/2020, 07:34

accessman

03.01.2020 tarihi 24 günlük döngünün ilk günü olmak üxere her 24 günde bir liste tekrarlıyor 
03.02.2020 - 03.01.2020 = 31
Mod24(31) = 7
24 günlük döngünün 7. günü
1 den 24 e kadar döngünün herbirinin vardiyası sabit
Temmuzdaki mod = 7 olan gün ile şubat 3 deki sabah çalışanlar aynı kişiler
Şöyle bir for döngüsü yazılr mı
Şubat 2020 ilk pazartesi den başlayan 
Son cumasına kadar devam eden
Sadece hafta içi günlere denk gelen posta listesini array liste alsın
Ben ay değerini 2 olarak fonksiyona göndereyim o bana şubat hafta içi günlere denk gelen tarih&posta listesi versin
Mesele sonuç şuna benzer olacak
03.02.2020&4c, 04.02.2020&4b...........
şöyle bir kod var

Kod:
Function ayin_ilk_carsambasini_bul(ay_sayisi As Integer) As Date
    Dim a As Date
    a = DateSerial(Year(Date), ay_sayisi, 1)
    Select Case Format(a, "dddd")
        Case "Pazartesi": ayin_ilk_carsambasini_bul = a + 2
        Case "Salı": ayin_ilk_carsambasini_bul = a + 1
        Case "Çarşamba": ayin_ilk_carsambasini_bul = a
        Case "Perşembe": ayin_ilk_carsambasini_bul = a + 6
        Case "Cuma": ayin_ilk_carsambasini_bul = a + 5
        Case "Cumartesi": ayin_ilk_carsambasini_bul = a + 4
        Case "Pazar": ayin_ilk_carsambasini_bul = a + 3
    End Select
End Function
21/01/2020, 08:08

berduş

Şubat ayina ait vardiya tablonuz var mı?
1 2 3 4 5 6 7 8 9 10 11