-2
votes

Comment obtenir un coût de location décroissant en fonction du nombre de jours

Y a-t-il un moyen rapide d'obtenir un coût de location décroissant en fonction du nombre de jours?

Par exemple: P>

function getcost(days){
   ...
   return $cost;
}

echo getcost(1); // it show 100$
echo getcost(3); // it show 220$
// and so on...


3 commentaires

Déclaration de commutation?


ou, tableau numéroté ($ Array [1 => 100, 2 => 70, 3 => 50]) - donc Calcprice de fonction ($ jours) {#Ajouter en conséquence en fonction du nombre de jours (si cela est supérieur à 3 @ 50)}


Alors, était-ce votre devoir?


5 Réponses :


0
votes
function getcost(days){
    $cost=0;
    for($idx=1;$idx<=$days;$idx++)
     {
       switch($idx)
       {
         case 1:
                 $cost+=100;
                 break;
         case 2:
                 $cost+=70;
                 break;
         default:
                 $cost+=50;
                 break;

       }
     }
  return $cost;
 }

0 commentaires

0
votes
$price = $days * 50 + ($days > 1 ? 70 : 20);
If you want to you can put it in a function.

0 commentaires

1
votes

En supposant que, à partir de la troisième journée, tous les jours consécutifs coûtent 50 $: xxx


0 commentaires

0
votes

Vous pouvez essayer comme ce moyen- xxx

Démo: https://3v4l.org/h9tf5


0 commentaires

0
votes

Si votre tarif de jour est basé sur le nombre de jours, alors vous permettant d'avoir un taux dynamique (type de voiture peut-être différent, etc.), il est préférable de disposer d'une forme de matrice transmise à la fonction. La fonction utilise ensuite cela et ajoute les jours jusqu'à ce que les taux s'épuisent et ajoute les jours restants en fonction du dernier taux ...

// Cost for each day
$costs = [100, 70, 50];

function getcost( $costs, $days){
    $totalCost = 0;
    foreach ( $costs as $dayCost )  {
        // Add each cost
        $totalCost += $dayCost;
        // Decrement number of days left and exit if reached 0
        if ( --$days == 0 ) {
            break;
        }
    }
    // If remaining days - add last day cost * number of days
    if ($days > 0 ) {
        $totalCost += ($dayCost*$days);
    }
    return $totalCost;
}

echo getcost($costs, 1); // it show 100$
echo getcost($costs, 3); // it show 220$
echo getcost($costs, 5); // it show 320$


0 commentaires