Hab soweit alles umgesetzt. Hänge aber immer noch bei dem Fall, dass Anmietdatum und Rückgabedatum nicht in der selben Sasion liegen. Vielleicht habt Ihr nen Vorschlag für eine Funktion, die die Summe der einzelnen Tage der verschiedenen Sasions zurückliefert. So dass mann dann den TotalPreis wie folgt ermitteln kann: (Anzahl der Tage der SaisonX * PreisX) + (Anzahl der Tage der SaisonY * PreisY) ... = Totalpreis
Zum nachvollziehen habe ich mal die relevanten Passagen aus dem Quellcode eingefügt. Ich hoffe das macht das Problem klarer.
Zum nachvollziehen habe ich mal die relevanten Passagen aus dem Quellcode eingefügt. Ich hoffe das macht das Problem klarer.
PHP-Code:
//changes the user date input into timestamp format (seconds);
//mktime() works only between 1970 and 2038!!!
$tdate1=mktime($pHour,$pMin,0,$month1,$day1,$year1);
$tdate2=mktime($rHour,$rMin,0,$month2,$day2,$year2);
$days=ceil(($tdate2-$tdate1)/86400);
//determines the season periodes of time
if ($year1==$year2)
{
$tstartLow=mktime(0,0,0,5,1,$year1); //low season from 1. May
$tendLow=mktime(23,59,59,9,30,$year1); //to 30. Sep
}
else
{
$tstartLow=mktime(0,0,0,5,1,$year1); //low season from 1. May
$tendLow=mktime(23,59,59,9,30,$year2); //to 30. Sep
}
//COSTS PER CAR MODELL
//low season 10 days+
if ($days>=10)
{
if (($this->isSameSeason ($tdate1,$tdate2,$tstartLow,$tendLow))
&& ($this->isLowSeason($tdate1,$tdate2,$tstartLow,$tendLow)))
{
switch ($car)
{
case 'Nissan March':
$pCarPerDay = $pLow10_March;
$pCarTotal = $pLow10_March*$days;
break;
}
}
}
function isSameSeason($tdate1,$tdate2,$tstartLow,$tendLow)
{
if (($tdate1>=$tstartLow)&&($tdate2<=$tendLow))
return true;
}
function isLowSeason($tdate1,$tdate2,$tstartLow,$tendLow)
{
if (($tdate1>=$tstartLow)&&($tdate2<=$tendLow))
return true;
}
Kommentar