• 04-07-2014, 16:12:38
    #1
    Merhaba
    Ufak bir beyin jimlastiği yapalım

    Soru şu:
    Süreçimiz 1 yıl (365 gün)

    Ahmet 60 gün çalışıyor, 30 gün dinleniyor bu süreç tekrarlıyor kendini yıl içerisinde.

    PHP versiyonunu alalım.

    Çıktı:
    1. gün çalışıyor
    .
    .
    60. gün çalışıyor
    61. gün tatil
    .
    .
    diye gidecek
  • 04-07-2014, 17:10:28
    #2
    Mantık çok basit;

    $gun = 1;
    for($i=0; $i<=364; $i++){
        if(($gun>=61 && $gun<=90) || ($gun>=151 && $gun<=180) || ($gun>=241 && $gun<=270) || ($gun>=331 && $gun<=360)){
            echo "TATİL<br />";
        }else{
            echo "Bugün ".$gun.". gün çalışıyor.<br />";
        }
        $gun++;
    }
    İşinize yaradıysa bir +Rap verirseniz sevinirim
  • 04-07-2014, 17:19:38
    #3
    for($i=1; $i<300; $i++){
    $s = $i % 91;
    if ($s <= 60){
    echo "$i - çalış <br>";
    }else{
    echo "$i - tatil <br>";
    }
    }
    iş görür sanırım
  • 04-07-2014, 17:27:48
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Biraz uzun oldu sanırım ama, iftardan sonra bi' update çekmeye çalışırım. malum kafa çalışmıyor şu an biraz da günleri istedikleri gibi ayarlayabilsinler diye ayarlama yaptım. bakalım neler denilcek

    $calisma = 60;
    $tatil = 30;
    
    $mod = $calisma + 1;
    $gun = 1;
    while($gun <= 365) {
    	if($gun % $mod != 0) {
    		echo $gun . '. gun calisiyor.<br />';
    		$gun++;
    	} else {
    		$j = 1;
    		for($i=1;$i<=$tatil;$i++) {
    			echo $gun . '. gun tatil.<br />';
    			$mod = $gun + $calisma + 1;
    			$gun++;
    		}
    	}
    }
  • 04-07-2014, 17:27:53
    #5
    Misafir
    for($gun=1;$gun<=365;$gun++)
    {
        $kalan = $gun % 91;
        if(($kalan-60)>0)
            echo "Çalışmıyorum - tatil <br>";
        else
            echo "Çalışmam lazım";
    }
    Günün 91'e bölümünden kalanın, 60 eksiği sıfırdan büyükse çalışmıyordur.

    örnek1: 61. gün
    * 61 / 91 'den kalan = 61
    * 60 eksiği = 1
    * Sıfırdan büyük, çalışmıyor

    örnek2: 94. gün
    * 94 / 91 kalan = 3
    * 60 eksiği = -57
    * Sfırıdan küçük, çalışıyor
  • 05-07-2014, 10:43:18
    #6
    PSDbul senin kide ikinci tekrarlamada +1 ekliyor hep
    PsdBul adlı üyeden alıntı: mesajı görüntüle
    for($i=1; $i<300; $i++){
    $s = $i % 91;
    if ($s <= 60){
    echo "$i - çalış <br>";
    }else{
    echo "$i - tatil <br>";
    }
    }
    iş görür sanırım




    Yasin ikinci tekrarlamada kodun patlıyor usta 60 değil 59 gün çıkıyor.


    yakoSin adlı üyeden alıntı: mesajı görüntüle
    for($gun=1;$gun<=365;$gun++)
    {
        $kalan = $gun % 91;
        if(($kalan-60)>0)
            echo "Çalışmıyorum - tatil <br>";
        else
            echo "Çalışmam lazım";
    }
    Günün 91'e bölümünden kalanın, 60 eksiği sıfırdan büyükse çalışmıyordur.

    örnek1: 61. gün
    * 61 / 91 'den kalan = 61
    * 60 eksiği = 1
    * Sıfırdan büyük, çalışmıyor

    örnek2: 94. gün
    * 94 / 91 kalan = 3
    * 60 eksiği = -57
    * Sfırıdan küçük, çalışıyor

    _BuKi_ adlı üyeden alıntı: mesajı görüntüle
    Biraz uzun oldu sanırım ama, iftardan sonra bi' update çekmeye çalışırım. malum kafa çalışmıyor şu an biraz da günleri istedikleri gibi ayarlayabilsinler diye ayarlama yaptım. bakalım neler denilcek

    $calisma = 60;
    $tatil = 30;
    
    $mod = $calisma + 1;
    $gun = 1;
    while($gun <= 365) {
    	if($gun % $mod != 0) {
    		echo $gun . '. gun calisiyor.<br />';
    		$gun++;
    	} else {
    		$j = 1;
    		for($i=1;$i<=$tatil;$i++) {
    			echo $gun . '. gun tatil.<br />';
    			$mod = $gun + $calisma + 1;
    			$gun++;
    		}
    	}
    }
    Sorunsuz çalışıyor
  • 05-07-2014, 14:54:51
    #7
    $i=$x=$a=1; $arr=[" .gün dinleniyor.<br/>"," .gün çalışıyor.<br/>"];
    while( $i <= 365 ){
    	echo $i.$arr[$a]; $i++; $x++;
    	if( $x > 60+30 ){ $a=1; $x=1; }
    	else if( $x > 60 ){ $a=0; }
    }
  • 05-07-2014, 17:45:30
    #8
    Ureticy adlı üyeden alıntı: mesajı görüntüle

    Sorunsuz çalışıyor
    11. satırda test için yazdığım $j değişkenini unutmuşum hocam. O bir işe yaramıyor şu an Onu da silersek, tam olcak.
  • 05-07-2014, 17:50:14
    #9
    Platin üye
    adam Resmen Size ödevini Yaptırdı