PHP问题:停车场收费计算:小车首小时收费10元;工作日第一小时后加收2元/半小时,非工作日第一小时后加

停车场收费计算:小车首小时收费10元;工作日第一小时后加收2元/半小时,非工作日第一小时后加收3元/半小时。以上收费按停放时间累积收取,不设上限。跨工作日与非工作日之间半小时时段的,按照未跨时段前的标准收费?

求这道题怎么做 怎么写。。
用PHP怎么写????
请先 登录 后评论

1 个回答

小太爷

<?php
/**
* @node_name
* Desc: demo
* Created by PhpStorm.
* User: <yanlong>
* Date: 10/1/18 11:02 AM
*/
class FeatureOne
{
public $sTime = 1800;
public function __construct()
{
date_default_timezone_set('Asia/Shanghai');
$this->checkSum(1538147400,1538233800);
}
private function checkSum($start_time,$end_time)
{
$totalFee = 0;
$workDay = [1,2,3,4,5];
$weekendDay = [6,0];
//计算出日期区间多少个工作日
//计算当前时间+1800s是否大于等于出闸时间
//PS:1800s半小时不足,在每次加的过程中判断星期是否发生变化
//计算出日期区间多少个双休日
//时间差除以1800得出收费次数
$tmpTime = $end_time-$start_time;
$qty = 1;
$whereTime = $start_time;
$ceilTime = ceil($tmpTime/$this->sTime);
echo "应该执行的时间次数$ceilTime".PHP_EOL;
while ($qty <= $ceilTime){
echo "循环了$qty 次".PHP_EOL;
//这里的时间是入场后第一次计费时间
$noweek = date("w",$whereTime);
echo "今天是周$noweek".PHP_EOL;
in_array($noweek,$workDay) && $totalFee += 2;
in_array($noweek,$weekendDay) && $totalFee += 3;
$whereTime += $this->sTime;//算下半个小时的费用
$qty++;
echo "当前费用$totalFee".PHP_EOL;
}
print_r($totalFee);exit;
}
}
new FeatureOne();

请先 登录 后评论