v2.5.2
Giriş yap

Üretim Plan

okan
865 defa görüntülendi ve 2 kişi tarafından değerlendirildi

Merhaba arkadaşlar,
Üretimi takip etmek amaçlı birşey yapmak istiyorum ama nasıl yapacağımı bilemiyorum yardımcı olurmusunuz?

7.15 de mesai başlıyor. 17.00 de bitiyor. 9.00 - 09.15 , 12.00 - 12.45 , 15.15 - 15.30 gibi üç molamız bulunuyor.
yapmak istediğim olay şu. zaman = 100 saniye. iş adedi: 130 adet 100x130 = 13000 saniye ediyor. 3saat 36 dakika sonra işi bitirecek yapan kişi.
ama bu süre uzayada bilir yada molaya denk gelebilir molayıda baslagıc saatine göre eklesin süreye istiyorum. işi 3 saatte değilde 12 saattede bitirebilir yani bir gün sonraya sarkacak. 17:00 a kadar olan çıkacak adedi bana bulsun bir sonraki güne aktarsın saat kaçta biteceğini yazdırayım istiyorum..
Umarım açıklayıcı olmuştur yardımlarınızı bekliyorum.

makifgokce
882 gün önce
function calculate(string $start, int $count, int $time, array & $k): string
{
	$to = $count * $time;
	$workingDays = [1, 2, 3, 4, 5];
	$from = new DateTime($start);
	$interval = new DateInterval("PT1S");
	$r = ($to * 10) + 172800;
	$periods = new DatePeriod($from, $interval, $r);
	$sec = 0;
	$x = -1;
	$z = 0;
	foreach ($periods as $period) {
		if (!in_array($period->format('N'), $workingDays)) continue;
		$h = intval($period->format('H'));
		$m = intval($period->format('i'));
		if($period->format('N') != $x){
			$x = $period->format('N');
			if($z > 0){
				array_push($k, $count - $z);
				$z = 0;
			}
		}
		if($sec >= $to){
			return $period->format('Y-m-d H:i:s');
			break;
		}
		if(($h >= 7 && $h <= 9)){
			if($h == 7 && $m < 15){
				continue;
			} else if($h == 9 && $m >= 30 && $m < 45){
				continue;
			} else {
				$sec++;
			}
		} else if(($h >= 9 && $h <= 12)){
			if($h == 9 && $m < 45){
				continue;
			} else if($h == 12 && $m >= 15){
				continue;
			}  else {
				$sec++;
			}
		} else if(($h >= 13 && $h <= 15)){
			if($h == 15 && $m >= 30 && $m < 45){
				continue;
			} else {
				$sec++;
			}
		} else if(($h >= 15 && $h <= 17)){
			if($h == 15 && $m >= 30 && $m < 45){
				continue;
			} else if($h == 17 && $m >= 30){
				continue;
			} else {
				$sec++;
			}
		}
		if($sec % $time == 0){
			$z++;
		}
	}
}