evet ama döngüden bahsettim yani her 24 günde bir tekrar eden bir tablo
ilgili günü 03.01.2020 çıkarıp farkı mod 24 göre bulduğumuzda tablodan hangi vardiyanın 08:16 olduğunu buluyoruz
mesela 03.02.2020 için bulunan MOD24(03.02.2020 - 03.01.20207) = 7  değerine göre çalışan vardiyalar "4d-4a-4b" yani sabahçı olan "4d" oluyor
0.gün --> 4c-4d-4a
...........
5.gün --> 4c-4d-4a
6.gün --> 4d-4a-4b
...........
11.gün --> 4d-4a-4b
12.gün --> 4a-4b-4c
...........
17.gün --> 4a-4b-4c
18.gün --> 4b-4c-4d
...........
23.gün --> 4b-4c-4d
0.gün --> 4c-4d-4a
bu tabloya göre MOD24(11.12.2020 - 03.01.20207) = 7 olduğu için 
11.12.2020 de çalışan sabahçı vardiya yine "4d" oluyor
				
				
			
			
			
			
			
				
Giriş Tarihine Göre Eğitim Planlama
				
				function arraybul(ilktarih as date, sontarih as date) as Arraylist
dim vardiya as string
dim liste as Arraylist
for ilktarih to sontarih
vardiya = tablodanal(mod((tarih - 03.01.2020),24))
liste.add tarih&vardiya
next
arraybul = liste
end function
function tablodanal(mod as integer) as String
dim result as string
if(mod > -1 and mod < 6) then
result = "4c"
elseif(mod >5 and mod < 12) then
result = "4d"
elseif(mod >5 and mod < 12) then
result = "4a"
elseif(mod >5 and mod < 12) then
result = "4b"
endif
			
			
			
			
				
	
			
			
			
			
			
			
		dim vardiya as string
dim liste as Arraylist
for ilktarih to sontarih
vardiya = tablodanal(mod((tarih - 03.01.2020),24))
liste.add tarih&vardiya
next
arraybul = liste
end function
function tablodanal(mod as integer) as String
dim result as string
if(mod > -1 and mod < 6) then
result = "4c"
elseif(mod >5 and mod < 12) then
result = "4d"
elseif(mod >5 and mod < 12) then
result = "4a"
elseif(mod >5 and mod < 12) then
result = "4b"
endif
				
				Ben anladiklarimi soyleyeyim
1 - personel tablosu : kisi - vardiya - işe giriş tarihi
2 - vardiya tablosu : tarih - vardiya - saat aralığı ( 8-16 gibi)
3 - eğitim tablosu : tarih - kisi
Tabloları varsa bu 3 tabloyu tek sorguda birleştirip kriterlerle sadece gerekli kişiler alabilirsiniz
personelden : şubat ayında ise başlayanları seçip vardiya tablosuyla birleştirirseniz hangi gun kim çalışıyor bulabilirsiniz ve eğitim tablosunda yer almayanlari kriter olarak belirlerseniz sadece eğitim almamış kişiler kalır , gerisi sadece do while döngüsü ve günü 1 artırma fonksiyonu
Günlerin pazar yada salı olması önemli mi
Zaten her gün çalışan 3 vardiya var
			
			
			
			
				
	
			
			
			
			
			
			
		1 - personel tablosu : kisi - vardiya - işe giriş tarihi
2 - vardiya tablosu : tarih - vardiya - saat aralığı ( 8-16 gibi)
3 - eğitim tablosu : tarih - kisi
Tabloları varsa bu 3 tabloyu tek sorguda birleştirip kriterlerle sadece gerekli kişiler alabilirsiniz
personelden : şubat ayında ise başlayanları seçip vardiya tablosuyla birleştirirseniz hangi gun kim çalışıyor bulabilirsiniz ve eğitim tablosunda yer almayanlari kriter olarak belirlerseniz sadece eğitim almamış kişiler kalır , gerisi sadece do while döngüsü ve günü 1 artırma fonksiyonu
Günlerin pazar yada salı olması önemli mi
Zaten her gün çalışan 3 vardiya var
				
				evet eğitim için çünkü eğitimi verecek kişi sadece hafta içi çalışıyor
kotamda yer kaldıysa iki tablo ekleyeyim
sn.berduş
liste tablosunda id, vardiya,işegiriştarihi var
vardiya tablosunda modlara göre saat aralığına göre hangi vardiya sabahçı olacak tablosu var ben fonksiyona değer olarak
(03.02.2020, 28.02.2020) göndereceğim oda bana
hafta içi günlere göre liste verecek mesela
03.02.2020
ahmet
hasan
ali
04.02.2020
mesut
zeynep
fadime
			
			
			
			
				
	
			
			
			
			
			
			
		kotamda yer kaldıysa iki tablo ekleyeyim
sn.berduş
liste tablosunda id, vardiya,işegiriştarihi var
vardiya tablosunda modlara göre saat aralığına göre hangi vardiya sabahçı olacak tablosu var ben fonksiyona değer olarak
(03.02.2020, 28.02.2020) göndereceğim oda bana
hafta içi günlere göre liste verecek mesela
03.02.2020
ahmet
hasan
ali
04.02.2020
mesut
zeynep
fadime
				
				problemin birinci kısmı ilgili tarihlerde sabahçı olacak personeli bulmak
lakin ikinci kısmı var ki işi biraz daha zorlaştırıyor
biz şubat ayı içinde gelecek 400 kişiyi bulduk diyelim
elimizde 20 gün kutusu var
400 kişi kartı var
bu kartları mümkün olduğu kadar kutulara eşit böleceğiz
ali kartını 03.02.2020 kutusuna koyabilmek için şartlarımız
- şubatta girmiş olmalı(şubatın 1 inde girmiş olabilir 28 inde de girmiş olabilir farketmiyor)
- 03.02.2020 de sabahçı vardiya olan "4c" de olmalı
- kutu çok dolu olmamalı
ali kartı 20 kutudan beşine konulabiliyor diyelim ki elimizde son bir kart kaldı bunu
konulabilecek beş kutudan en az dolu olanına koyarız değil mi
bunu accesse anlatmamız lazım ki kutular arasında mümkün olduğu kadar eşit bir dağılım olsun
			
			
			
			
				
	
			
			
			
			
			
			
		lakin ikinci kısmı var ki işi biraz daha zorlaştırıyor
biz şubat ayı içinde gelecek 400 kişiyi bulduk diyelim
elimizde 20 gün kutusu var
400 kişi kartı var
bu kartları mümkün olduğu kadar kutulara eşit böleceğiz
ali kartını 03.02.2020 kutusuna koyabilmek için şartlarımız
- şubatta girmiş olmalı(şubatın 1 inde girmiş olabilir 28 inde de girmiş olabilir farketmiyor)
- 03.02.2020 de sabahçı vardiya olan "4c" de olmalı
- kutu çok dolu olmamalı
ali kartı 20 kutudan beşine konulabiliyor diyelim ki elimizde son bir kart kaldı bunu
konulabilecek beş kutudan en az dolu olanına koyarız değil mi
bunu accesse anlatmamız lazım ki kutular arasında mümkün olduğu kadar eşit bir dağılım olsun
				
				eğitim tablosu da yok muydu?
				
				
			
			
			
			
			
				
	
			
			
			
			
			
			
		
		Konuyu Okuyanlar: 1 Ziyaretçi
	


 
	