Aslında soru programlamadan çok algoritma sorusu. Algoritmayı oturtursan herhangi bir dilde yazılabilir. Genel olarak bir cevap vermek istiyorum.
Yazdıklarımı kod olarak değil işleyiş olarak düşün. Anlaşılması için uzun uzun yazdım. Test imkanı olmadığı için hata olursa affola.

Öncelikle bir form yapılacak.

1. Takvimden giriş ve çıkış günleri seçilecek. ($giris_tarihi, $cikis_tarihi)
2. Aracın tipi seçilecek ($arac_tipi) // Databasedeki alan ile eşlemesi için fiyat_20 veya fiyat_40 değerleri almalı
3. Tarife tipi seçilecek ($tarife_tipi)

Formdan gelen verileri işleyen sayfa
$bekledigi_gun = $cikis_tarihi-$giris_tarihi; //Çıkış tarihinden giriş tarihini çıkarıp gün sayısını buluyoruz.

if($tarife_tipi=='1') // Standart tarife 
{    
    $ucret = $db->query('select $arac_tipi from tarife_detay where tarife_id=1 and ilk_gun <= $bekledigi_gun and son_gun >= $bekledigi_gun');

    /*
	Sorgu Açıklaması: Tarife Detay tablosundan tarife_id si 1 olan, ilk_gun değeri beklediği günden küçük, son_gun değeri beklediği günden büyük değerleri bul
	Bulunan satırın arac tipine göre (fiyat_20 veya fiyat_40) degerini ver.
   */
	
    $odenecek_tutar = $ucret*$bekledigi_gun;
    return $odenecek_tutar;		
}
else // Toplamalı tarife
{
	$birinci_kademe_fiyat = $db->query('select $arac_tipi from tarife_detay where tarife_id=2 and ilk_gun <= 0 and son_gun >= 15');
	$ikinci_kademe_fiyat = $db->query('select $arac_tipi from tarife_detay where tarife_id=2 and ilk_gun <= 16 and son_gun >= 30');
	$ucuncu_kademe_fiyat = $db->query('select $arac_tipi from tarife_detay where tarife_id=2 and ilk_gun <= 31 and son_gun >= 60');

   if($bekledigi_gun <=15)
	{	  
	   $odenecek_tutar = $birinci_kademe_fiyat*$bekledigi_gun;
	   return $odenecek_tutar;			
	}
    else if($bekledigi_gun >=16 and $bekledigi_gun >=30)
	{
	   $ikinci_kademe_gun = $bekledigi_gun-15;
           $odenecek_tutar = $birinci_kademe_fiyat*15 + $ikinci_kademe_fiyat*$ikinci_kademe_gun; 
 	return $odenecek_tutar;		
	}
	else {
	   $ucuncu_kademe_gun = $bekledigi_gun-30;
           $odenecek_tutar = $birinci_kademe_fiyat*15 + $ikinci_kademe_fiyat*15 + $ucuncu_kademe_fiyat*$ucuncu_kademe_gun ;
	    return $odenecek_tutar;
	}
}