应用于停车场的24小时计费算法

停车场管理中,最普遍最简单的计费规则当属24小时计费,也就是在按停车小时数计费. 收费规则设置界面如下
在这里插入图片描述
24小时计费规则并不复杂,方法输入车辆进出时间startTime、endTime

参考代码Java

public static BigDecimal chargin(HourChargingRule rule,LocalDateTime inTime,LocalDateTime endTime){
        Duration between = Duration.between(inTime, endTime);
        //相差分钟数
        long minutes = between.toMinutes();
        if(rule.getFreeMin() >= minutes){
            //未到收费时长
            return new BigDecimal(ChargingFinal.ZERO_FREE);
        }
        //停车时长在一天内
        if(minutes <= dayMin){
            //判断多少个小时
            int s = (int)minutes / 60;
            if(minutes % 60 >= rule.getTwoMin()){
                s+=1;
            }
            return rule.getChargingHours().get(s - 1);
        }
        //1.计算满24小时第一天费用
        BigDecimal totalMoney = rule.getChargingHours().get(23);//第一天费用
        //2.计算24小时后费用
        int day = (int) minutes / dayMin;
        if(rule.getExceedMode() == 0 ){ //重复24小时计费
            totalMoney = totalMoney.multiply(new BigDecimal(day - 1));
            //计算最后一个未满24小时车费
            int lastMin = (int) minutes % dayMin;
            if(lastMin > rule.getTwoMin()){
                int hours = lastMin / 60;
                if(lastMin % 60 >= rule.getTwoMin()){
                    hours+=1;
                }
                totalMoney = totalMoney.add(rule.getChargingHours().get(hours - 1));
            }
        }else if(rule.getExceedMode() == 1){//每小时收费
            int lastMin = (int)minutes % dayMin;
            if(lastMin >= rule.getTwoMin()){
                int hours = lastMin / 60;
                if(lastMin % 60 >= rule.getTwoMin()){
                    hours+=1;
                }
                totalMoney = totalMoney.add(BigDecimal.valueOf(hours * rule.getExceedValue()));
            }
        }else if(rule.getExceedValue() == 2){
            totalMoney = totalMoney.multiply(new BigDecimal(day - 1));
            int lastMin = (int)minutes % dayMin;
            if(lastMin >= rule.getTwoMin()){
                totalMoney = totalMoney.add(rule.getChargingHours().get(23));
            }
        }
        return totalMoney;
    }
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: matlab停车场计时计费是一种用于计算停车时间和费用的工具。通过该工具,我们可以准确地计算出车辆停车场内的停留时间,并且根据停留时间来确定相的停车费用。 首先,我们需要获取车辆进入停车场离开停车场时间。可以通过车辆进入和离开停车场时刻的记录或者通过车辆的入口和出口自动识别系统来获得这些时间数据。 然后,使用matlab进行时间的计算。可以将进入和离开时间转换为matlab中的日期时间格式,并且计算两个日期时间之间的时间差。这将得到车辆停车场停留的总时间。 接下来,我们可以根据停车场计费规则来确定相计费方法。例如,可以规定每小时收费多少金额,并且根据停留时间计算出缴纳的费用。在matlab中,可以使用条件判断和循环来实现这一计费规则的计算过程。 最后,将计算出的停留时间和费用显示出来,以便车主对停车费用进行了解和支付。可以在matlab界面上设定一个用户界面,或者将结果输出为文本格式,方便车主进行查看。 总之,matlab停车场计时计费可以帮助实现对停车场车辆停留时间和费用的准确计算,提供方便快捷的服务。通过合理的设计和规划,我们可以利用matlab编写出一个完整的停车场计时计费系统。 ### 回答2: 停车场计时计费是一种基于停车时间长短进行费用计算的方法。Matlab语言可以用于开发停车场计时计费系统。 首先,需要使用Matlab编写一个程序,用于获取车辆进入停车场时间离开停车场时间,并计算停车的时长。可以使用Matlab中的时间函数,如`now`函数来获取当前时间,然后使用计算函数,如`datevec`函数将时间转换为可计算的格式。 然后,根据停车场计费标准,使用Matlab编写一个计费算法。可以根据停车时长和计费规则,设定不同的费率。例如,头半小时按照固定费用计费,之后每小时按照固定费用计费。可以使用`if-else`语句或者`switch`语句来实现不同的计费逻辑。 最后,将计费结果显示给用户。可以使用Matlab的图形界面功能,创建一个简单的用户界面,用于输入车辆进出停车场时间,然后将计费结果显示在界面上。可以使用`msgbox`函数来显示计费结果,或者使用`uicontrol`函数创建一个静态文本框显示计费结果。 总之,使用Matlab可以很方便地实现停车场计时计费系统。通过编写获取时间函数、计费算法和显示结果的程序,可以将停车场计费自动化,提升效率和准确性。同时,Matlab的可视化功能还可以为用户提供一个友好的界面,使得使用更加方便。 ### 回答3: MATLAB是一种流行的编程语言和数值计算环境,可以用来编写计时计费停车场程序。停车场计费一般基于停车时长计算费用,以下是一个使用MATLAB实现停车场计时计费的简单步骤: 1. 获取进入停车场时间和车牌号:当车辆进入停车场时,记录下当前时间和车牌号码。 2. 获取离开停车场时间:当车辆离开停车场时,记录下当前时间。 3. 计算停车时长:使用离开时间减去进入时间,得到车辆的停车时长。 4. 计算停车费用:根据停车场小时的收费标准,根据停车时长计算出费用。 5. 输出计费结果:将车牌号和计费结果输出显示。 以下是一个使用MATLAB编写的停车场计时计费的示例代码: ```MATLAB % 获取进入停车场时间和车牌号 enterTime = datetime('now'); licensePlate = 'ABC123'; % 获取离开停车场时间 leaveTime = datetime('now'); % 计算停车时长 parkingDuration = leaveTime - enterTime; % 计算停车费用(假设每小时收费5元) hourlyRate = 5; parkingFee = hours(parkingDuration) * hourlyRate; % 输出计费结果 disp(['车牌号:', licensePlate]); disp(['停车时长:', char(parkingDuration)]); disp(['停车费用:', num2str(parkingFee), '元']); ``` 这段代码可以通过在MATLAB命令窗口运行,输入车辆进入和离开时间以及车牌号,就可以计算出停车时长和费用,并输出显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值