智慧停车收费代码

智慧停车。 收费标准,
8:00 - 20:00 每小时收费2
20:00-8:00 每小时收费2,封顶5元

  /**
     * 计算订单价格
     * freeduration  免费分钟
     * hourlycharge  每小时收费(元)
     * start_time 开始时间
     * end_time 免费时间
     * @return mixed
     */
    public function calculation($freeduration,$hourlycharge,$start_time)
    {
        header("Content-type:text/html;charset=utf-8");
        ini_set('date.timezone', 'Asia/Shanghai');
    	$end_time = time();
    	$minute_total = floor(($end_time-$start_time)%86400/60);
    	$price = 0;

    	if($minute_total < intval($freeduration)){
    		// 没有超过免费分钟数量 免费
    		$price = 0;
    	}else{
            //订单开始时间
            $startTime = date('Y-m-d',$start_time); 
            //订单结束时间
            $endTime = date('Y-m-d',$end_time); 
            //订单开始时间早上8点
            $eightEvening1 = $startTime."08:00";
            //订单开始时间晚上8点
            $eightEvening =  $startTime."20:00";
            //订单结束时间早上八点
            $eightDay = $endTime."08:00";
            //订单结束时间晚上八点
            $eightDay1 = $endTime."20:00";
            //判断是不是大于24小时
            $hour_total = floor(($end_time-$start_time)%86400/3600);
            // 判断如果没有满足一个小时按满足一小时进行计算
            $hour_total = $hour_total == 0 ? 1 : $hour_total;
            // if(date('H',$start_time) <= 8 && date('H',$end_time) <= 8){
            //     // 判断开始时间是否在早上八点之前 和 结束时间早上八点之前
            // }else if(date('H',$start_time) <= 8 && date('H',$end_time) >= 8 && date('H',$end_time) <= 20){
            //    // 判断开始时间是否在早上8点之前 并且 结束时间在早上八点之后和晚上八点之前
            // }else if(date('H',$start_time) <= 8 && date('H',$end_time) >= 20){
            //     // 判断开始时间是否在早上8点之前 并且 结束时间是在晚上八点之后
            // }
            if(date('H',$start_time) <= 8 ){
                // 判断开始时间是否在早上八点之前 
                if(date('H',$end_time) <= 8 ){
                    // 判断结束时间是否在早上八点之前 
                    //中间间隔天数,开始时间在
                    $day_tian = floor(($end_time-$start_time)/86400);
                    if($day_tian == 0){
                        // 算钱
                        $hour_total = floor(($end_time-$start_time)%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price = $hour_total * $hourlycharge;
                        if($price > 5){
                            $price = 5;
                        }
                    }elseif($day_tian == 1){
                        $price1 = '';
                        // 算钱
                        $hour_total = floor((strtotime($eightEvening1)-$start_time)%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price1 = $hour_total * $hourlycharge;
                        if($price1 > 5){
                            $price1 = 5;
                        }
                        $price2 = 12 * $hourlycharge;
                        $price3 = 5;
                        $price = $price1 + $price2 + $price3;
                    }else{
                        $price1 = '';
                        // 订单开始时间的早上八点 减 订单开始时间的几个小时
                        // 算钱
                        $hour_total = floor((strtotime($eightEvening1)-$start_time)%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price1 = $hour_total * $hourlycharge;
                        if($price1 > 5){
                            $price1 = 5;
                        }
                        $price2 = '';
                        // 白天早上八点到晚上8点的算钱 
                        $day_tian = $day_tian - 1;
                        $price2 = 12 * $day_tian * $hourlycharge + 5 * $day_tian;
                        $price3 = '';
                        // 晚上的24之后 到第二天早上的八点之前
                        $price3 = 12 * $hourlycharge;
                        $price4 = 5;
                        $price = $price1 + $price2 + $price3 + $price4;
                    }
                }else if(date('H',$end_time) > 8 && date('H',$end_time) <= 20 ){
                    // 判断结束时间是否早上八点之后和晚上八点之间
                    //中间间隔天数,开始时间在
                    $day_tian = floor(($end_time-$start_time)/86400);
                    if($day_tian == 0){
                        // 算钱
                        $hour_total = floor((strtotime($eightEvening1)-$start_time)%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price1 = $hour_total * $hourlycharge;
                        if($price1 > 5){
                            $price1 = 5;
                        }
                        $hour_total = floor(($end_time-strtotime($eightDay))%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price2 = $hour_total * $hourlycharge;

                        $price = $price1 + $price2;
                    }else{
                        $price1 = '';
                        // 订单开始时间的早上八点 减 订单开始时间的几个小时
                        // 算钱
                        $hour_total = floor((strtotime($eightEvening1)-$start_time)%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price1 = $hour_total * $hourlycharge;
                        if($price1 > 5){
                            $price1 = 5;
                        }
                        $price2 = '';
                        // 白天早上八点到晚上8点的算钱 
                        $price2 = 12 * $day_tian * $hourlycharge + 5 * $day_tian;
                        $price3 = '';
                        // 晚上的24之后 到第二天早上的八点之前
                        $hour_total = floor(($end_time-strtotime($eightDay))%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price3 = $hour_total * $hourlycharge;
                        $price = $price1 + $price2 + $price3;
                    }

                }else if(date('H',$end_time) > 20 ){
                    // 判断结束时间是否在晚上八点之后
                    //中间间隔天数,开始时间在
                    $day_tian = floor(($end_time-$start_time)/86400);
                    if($day_tian == 0){
                        // 算钱
                        $hour_total = floor((strtotime($eightEvening1)-$start_time)%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price1 = $hour_total * $hourlycharge;
                        if($price1 > 5){
                            $price1 = 5;
                        }
                        $price2 = 12 * $hourlycharge;
                        $hour_total = floor(($end_time-strtotime($eightDay1))%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price3 = $hour_total * $hourlycharge;
                        if($price3 > 5){
                            $price3 = 5;
                        }
                        $price = $price1 + $price2 + $price3;
                    }else{
                        $price1 = '';
                        // 订单开始时间的早上八点 减 订单开始时间的几个小时
                        // 算钱
                        $hour_total = floor((strtotime($eightEvening1)-$start_time)%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price1 = $hour_total * $hourlycharge;
                        if($price1 > 5){
                            $price1 = 5;
                        }
                        $price2 = '';
                        // 白天早上八点到晚上8点的算钱 
                        $price2 = 12 * $day_tian * $hourlycharge + 5 * $day_tian;
                        $price3 = 12 * $hourlycharge;
                        $price4 = '';
                        // 订单结束时间 减去 订单时间的晚上八点 
                        $hour_total = floor(($end_time-strtotime($eightDay1))%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price4 = $hour_total * $hourlycharge;
                        if($price4 > 5){
                            $price4 = 5;
                        }
                        $price = $price1 + $price2 + $price3 + $price4;
                    }

                }
            }else if(date('H',$start_time) > 8 && date('H',$start_time) <= 20 ){
               // 判断开始时间是否早上八点之后和晚上八点之间
                if(date('H',$end_time) <= 8 ){
                    // 判断结束时间是否在早上八点之前
                     //中间间隔天数,开始时间在
                    $day_tian = floor(($end_time-$start_time)/86400);
                    if($day_tian == 0){
                        // 算钱
                        $hour_total = floor((strtotime($eightEvening)-$start_time)%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price1 = $hour_total * $hourlycharge;
                        $price2 = 5;
                        $price = $price1 + $price2;
                    }else{
                        $price1 = '';
                        // 订单开始时间的早上八点 减 订单开始时间的几个小时
                        // 算钱
                        $hour_total = floor((strtotime($eightEvening)-$start_time)%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price1 = $hour_total * $hourlycharge;
                        
                        $price2 = '';
                        // 白天早上八点到晚上8点的算钱 
                        // $day_tian = $day_tian - 1;
                        $price2 = 12 * $day_tian * $hourlycharge + 5 * $day_tian;
                        $price3 = 5;
                        $price = $price1 + $price2 + $price3;
                    }

                }else if(date('H',$end_time) > 8 && date('H',$end_time) <= 20 ){
                   // 判断结束时间是否早上八点之后和晚上八点之间
                     //中间间隔天数,开始时间在
                    $day_tian = floor(($end_time-$start_time)/86400);
                    if($day_tian == 0){
                        // 算钱
                        $hour_total = floor(($end_time-$start_time)%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price1 = $hour_total * $hourlycharge;
                        $price = $price1;
                    }else if($day_tian == 1){
                        $price1 = '';
                        // 订单开始时间的早上八点 减 订单开始时间的几个小时
                        // 算钱
                        $hour_total = floor((strtotime($eightEvening)-$start_time)%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price1 = $hour_total * $hourlycharge;
                        $price2 = 5;
                        $price3 = '';
                        // 算钱
                        $hour_total = floor(($end_time-strtotime($eightDay))%86400/3600);
                         // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price3 = $hour_total * $hourlycharge;
                        $price = $price1 + $price2 + $price3;
                    }else{
                        $price1 = '';
                        // 订单开始时间的早上八点 减 订单开始时间的几个小时
                        // 算钱
                        $hour_total = floor((strtotime($eightEvening)-$start_time)%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price1 = $hour_total * $hourlycharge;
                        $day_tian = $day_tian - 1;
                        $price2 = 12 * $day_tian * $hourlycharge + 5 * $day_tian;
                        $price3 = 5;
                        $price4 = '';
                        // 算钱
                        $hour_total = floor(($end_time-strtotime($eightDay))%86400/3600);
                         // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price4 = $hour_total * $hourlycharge;
                        $price = $price1 + $price2 + $price3 + $price4;
                    }
                }else if(date('H',$end_time) > 20 ){
                    // 判断结束时间是否在晚上八点之后
                    //中间间隔天数,开始时间在
                    $day_tian = floor(($end_time-$start_time)/86400);
                    if($day_tian == 0){
                        $price1 = '';
                        // 算钱
                        $hour_total = floor((strtotime($eightEvening)-$start_time)%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price1 = $hour_total * $hourlycharge;

                        $price2 = '';
                        // 算钱
                        $hour_total = floor(($end_time-strtotime($eightDay1))%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price2 = $hour_total * $hourlycharge;
                        if($price2 > 5){
                            $price2 = 5;
                        }
                        $price = $price1 + $price2;
                    }else{
                        $price1 = '';
                        // 算钱
                        $hour_total = floor((strtotime($eightEvening)-$start_time)%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price1 = $hour_total * $hourlycharge;

                        $price2 = 12 * $hourlycharge * $day_tian + 5 * $day_tian;

                        $price3 = '';
                        // 算钱
                        $hour_total = floor(($end_time-strtotime($eightDay1))%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price3 = $hour_total * $hourlycharge;
                        if($price3 > 5){
                            $price3 = 5;
                        }
                        $price = $price1 + $price2 + $price3;
                    }
                }
            }else if(date('H',$start_time) > 20 ){
                // 判断开始时间是否在晚上八点之后
                if(date('H',$end_time) <= 8 ){
                    // 判断结束时间是否在早上八点之前
                    //中间间隔天数,开始时间在
                    $day_tian = floor(($end_time-$start_time)/86400);
                    if($day_tian == 0){
                        $hour_total = floor(($end_time-$start_time)%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price1 = $hour_total * $hourlycharge;
                        if($price1 > 5){
                            $price1 = 5;
                        }
                        $price = $price1;
                    }elseif($day_tian == 1){
                        $price1 = 5;
                        $price2 = 12 * $hourlycharge;
                        $price3 = 5;
                        $price = $price1 + $price2 + $price3;
                    }else{
                        $price1 = 5;
                        $day_tian = $day_tian - 1;
                        $price2 = 12 * $hourlycharge * $day_tian + 5 * $day_tian;
                        $price3 = 12 * $hourlycharge;
                        $price4 = 5;
                        // 算钱
                        $price = $price1 + $price2 + $price3 + $price4;
                    }
                }else if(date('H',$end_time) > 8 && date('H',$end_time) <= 20 ){
                   // 判断结束时间是否早上八点之后和晚上八点之间
                    //中间间隔天数,开始时间在
                    $day_tian = floor(($end_time-$start_time)/86400);
                    if($day_tian == 0){
                        $price1 = 5;
                        $price2 = '';
                        // 算钱
                        $hour_total = floor(($end_time-strtotime($eightDay))%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price2 = $hour_total * $hourlycharge;
                        $price = $price1 + $price2;
                    }else{
                        $price1 = 5;
                        // $day_tian = $day_tian - 1;
                        $price2 = 12 * $hourlycharge * $day_tian + 5 * $day_tian;
                        // 算钱
                        $hour_total = floor(($end_time-strtotime($eightDay))%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price3 = $hour_total * $hourlycharge;
                        // 算钱
                        $price = $price1 + $price2 + $price3;
                    }
                }else if(date('H',$end_time) > 20 ){
                    // 判断结束时间是否在晚上八点之后
                     //中间间隔天数,开始时间在
                    $day_tian = floor(($end_time-$start_time)/86400);
                    if($day_tian == 0){
                        // 算钱
                        $hour_total = floor(($end_time-$start_time)%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price1 = $hour_total * $hourlycharge;
                        if($price1 > 5){
                            $price1 = 5;
                        }
                        $price = $price1;
                    }else if($day_tian == 1){
                        $price1 = 5;
                        $price2 = 12 * $hourlycharge;
                        $price3 = '';
                        // 算钱
                        $hour_total = floor(($end_time-strtotime($eightEvening))%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price3 = $hour_total * $hourlycharge;
                        if($price3 > 5){
                            $price3 = 5;
                        }
                        $price = $price1 + $price2 + $price3;
                    }else{
                        $price1 = 5;
                        $day_tian = $day_tian - 1;
                        $price2 = 12 * $hourlycharge * $day_tian + 5 * $day_tian;
                        $price3 = 12 * $hourlycharge;
                        // 算钱
                        $hour_total = floor(($end_time-strtotime($eightDay1))%86400/3600);
                        // 判断如果没有满足一个小时按满足一小时进行计算
                        $hour_total = $hour_total == 0 ? 1 : $hour_total;
                        $price4 = $hour_total * $hourlycharge;
                        if($price4 > 5){
                            $price4 = 5;
                        }
                        // 算钱
                        $price = $price1 + $price2 + $price3 + $price4;
                    }
                }
            }
    	}
    	return $price;
    }
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
抱歉,智慧停车系统的代码是一个复杂的项目,需要多个技术领域的专业知识和经验。我作为一名人工智能模型,无法直接生成完整的代码。但我可以给你一些参考建议,帮助你开始构建这个系统。 智慧停车系统的主要功能是实现自动化的停车管理,包括车辆入场、出场、停车位管理等。以下是一些可能需要考虑的技术和步骤: 1. 车辆识别技术 智慧停车系统需要能够自动识别车辆信息。一种常见的技术是使用车牌识别算法,通过摄像头拍摄车辆的车牌号码,然后使用图像处理技术对车牌进行识别和匹配。其他的技术包括使用RFID标签识别、NFC技术等等。 2. 停车位管理 停车位管理是智慧停车系统的关键功能之一。通过传感器或者摄像头可以实时监测停车场内的车位使用情况,并将车位信息上传到系统中。车辆进入停车场时,系统能够自动为其分配空闲的车位,并在车辆离开时将车位标记为可用状态。 3. 数据管理 智慧停车系统需要能够实时收集、处理和存储大量的数据,例如车辆进出时间、停车位使用情况、车辆停留时间等等。这些数据可以用于停车场的管理和优化。 4. 用户界面 智慧停车系统需要提供一个用户界面,让用户能够方便地查询停车位情况、预定停车位、支付停车费用等等。 以上是一些构建智慧停车系统的基本步骤和技术。具体实现方式和代码结构可能因不同的需求而异。如果您需要更多的帮助,建议您咨询相关的技术专家或者工程师。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凯鑫BOSS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值