私のレンタル製品の日、週、および月間料金を計算する際に問題があります。PHP - 固定価格に基づいて毎週毎月および毎月の計算として
310毎日/毎週725/1660月刊
ロジックに来る:
日1 + 2日= 620しかし日1 + 2日+ 3日目= 930ました725(週単位)より大きい。だから、今週の価格は7日に達するまで適用されるべきです。
次に、
8日= 7日目+ 310 = 1035(未登録> 1660家賃)= 1345
9日目= 8日目+ 310(未登録> 1660家賃)
日10日= 9日目+ 310日= (ただし、1660月未満の賃料)ですが、2週間以上の価格と日数は14未満です。
したがって、725 + 725 = 1450を14日間適用する必要があります。
....
....
14日= 1450
次に、
15日= 14日目310 = (> 1660)
ここでは、月末までに1660を適用する必要があります。
....
....
日= 1660年30/31
私は成功した構築ではなくするために多くのことを試してみました。誰でも私をここで助けることができますか?
更新コード:ここで
<?php
$perDayAmt=310;
$perWeekAmt=725;
$perMonthAmt=1660;
$finalAmt=0;
$start_date=new DateTime(date('Y-m-d'));//, strtotime("+12 days")
$end_date=new DateTime(date('Y-m-d', strtotime("+14 days")));
$differenceInDays = $end_date->diff($start_date)->format("%a");
if($differenceInDays >0){
if($differenceInDays <= 7){
if(($differenceInDays*$perDayAmt) <= $perWeekAmt){// 5 days amount <= $perWeekAmt amount
$finalAmt = $differenceInDays*$perDayAmt; //no. of days * $perDayAmt amount
}else{
$finalAmt =$perWeekAmt; // $perWeekAmt amount
}
}else{
/*if(($differenceInDays%7) == 0 && ($perWeekAmt*($differenceInDays/7)) < $perMonthAmt){
//14 < 30 && 14 % 7==0 && $perWeekAmt amount * [2 or 3 or 4 or 5] < $perMonthAmt amount
$finalAmt = $perWeekAmt*($differenceInDays/7); //$perWeekAmt amount * [2 or 3 or 4 or 5]
}else if(($differenceInDays%7) != 0 && ($perWeekAmt*($differenceInDays/7)) < $perMonthAmt){
//10 < 30 && 10 % 7!=0 && 10 days amount > $perWeekAmt amount
$finalAmt =$perWeekAmt; // $perWeekAmt amount
}*/
if(($differenceInDays%7) == 0) {
if(($perWeekAmt*($differenceInDays/7)) > $perMonthAmt){
if(($differenceInDays%30) == 0) {
$finalAmt = $perMonthAmt*($differenceInDays/30);
}else{
}
}else if(($perWeekAmt*($differenceInDays/7)) < $perMonthAmt){
$finalAmt = $perWeekAmt*($differenceInDays/7);
}
}
}
echo $finalAmt;exit;
}
は、あなたがカートに製品を追加することができます参照リンクです:
あなたがしようとしたとどのようにそれが成功しなかった持っていますか? – jeroen
ロジックをコードに追加してください。 –
は28日、29日、30日または31日ですか?いつ1ヶ月プラス1日になるのですか? – Andreas