• 08-04-2014, 22:32:17
    #10
    Bir yol buldum ama manuel ve sorunlu çalışacak. bunu bir döngüye sizce nasıl alabilirim.

    $gun_sayisi = (($out_date - $in_date) /60/60/24);
    
    echo 'Toplam Gün: '.$gun_sayisi;
    echo '<hr>';
    
    
    $donemsel_fiyat = $db->get_row("select tarih_ucret,id,tarih_bitis from donemsel_fiyatlar where is_id='". $db->escape($is_id)."' and  tarih_baslangic>=$in_date and (tarih_bitis>=$out_date or tarih_bitis<$out_date) order by tarih_baslangic asc limit 1");
    burada şöyle bir algoritma düşündüm. Gün sayısı toplamını buluncaya sql sorgusunu yapması.

    Örnegin gün sayısı 5 ilk dönemsel fiyat içerisinde olsa. (varsayalım belirlenmiş 10 günlük dönemsel fiyat içerisinde)

    tek sorgu bitecek.

    20 gün sayısı oldu diyelim.

    Burada
    1. dönemsel fiyattan 1 gün. (dönemsel fiyatın son gününe denk geliyor diyelim)
    2. dönemsel fiyattan (sonraki dönemsel fiyatın hepsini kapsıyor. 17)

    Toplam 18 gün yaptı.

    3. dönemsel fiyattan ise ilk 2 günü karşılıyor.

    Bu durumda hesap şu şekilde olacak

    Fiyat Tablosu:
    1. dönem = 30
    2. dönem = 40
    3. dönem = 50

    1*30 = 30
    17*40 = 680
    2 * 50 = 100

    Toplam 850 TL işçinin alacağı çıkıyor.

    Buradaki koşulu döngüye sokmak gerekiyor çünkü bu çalışma süresi 1 yılda olabilir.
  • 08-04-2014, 22:54:59
    #11
    nurettin adlı üyeden alıntı: mesajı görüntüle
    Bir yol buldum ama manuel ve sorunlu çalışacak. bunu bir döngüye sizce nasıl alabilirim.

    $gun_sayisi = (($out_date - $in_date) /60/60/24);
    
    echo 'Toplam Gün: '.$gun_sayisi;
    echo '<hr>';
    
    
    $donemsel_fiyat = $db->get_row("select tarih_ucret,id,tarih_bitis from donemsel_fiyatlar where is_id='". $db->escape($is_id)."' and  tarih_baslangic>=$in_date and (tarih_bitis>=$out_date or tarih_bitis<$out_date) order by tarih_baslangic asc limit 1");
    burada şöyle bir algoritma düşündüm. Gün sayısı toplamını buluncaya sql sorgusunu yapması.

    Örnegin gün sayısı 5 ilk dönemsel fiyat içerisinde olsa. (varsayalım belirlenmiş 10 günlük dönemsel fiyat içerisinde)

    tek sorgu bitecek.

    20 gün sayısı oldu diyelim.

    Burada
    1. dönemsel fiyattan 1 gün. (dönemsel fiyatın son gününe denk geliyor diyelim)
    2. dönemsel fiyattan (sonraki dönemsel fiyatın hepsini kapsıyor. 17)

    Toplam 18 gün yaptı.

    3. dönemsel fiyattan ise ilk 2 günü karşılıyor.

    Bu durumda hesap şu şekilde olacak

    Fiyat Tablosu:
    1. dönem = 30
    2. dönem = 40
    3. dönem = 50

    1*30 = 30
    17*40 = 680
    2 * 50 = 100

    Toplam 850 TL işçinin alacağı çıkıyor.

    Buradaki koşulu döngüye sokmak gerekiyor çünkü bu çalışma süresi 1 yılda olabilir.


    function tarihbul($baslangic,$bitis) {
    	$kes1=explode('.',$baslangic); 
    	$kes2=explode('.',$bitis); 
    	$time1=mktime(0,0,0,$kes1[1],$kes1[0],$kes1[2]); 
    	$time2=mktime(0,0,0,$kes2[1],$kes2[0],$kes2[2]); 
    	$total = array();
    	while($time1<=$time2) {
    		$x=date('d.m.Y', ($time1)); 
    		$xy = strtotime($x);
    			$getir = mysql_query("select * from donemsel_fiyatlar where tarih_baslangic<$xy and tarih_bitis>$xy");
    			$row = mysql_fetch_array($getir);
    			$ucret = $row["tarih_ucret"];
    			$total[] = $ucret;
    		$time1=$time1+86400; 
    	}
    	return array_sum($total);
    }
    $baslangic = "31.03.2014"; 
    $bitis = "29.05.2014"; 
    echo tarihbul($baslangic,$bitis);
    // Çıktısı 10150
    İş görürmü ?
  • 08-04-2014, 23:19:41
    #12
    ellerinize sağlık evet baya işe yaradı