解释一下这段代码public class CostUtils { /** * 计算 * @param record * @param carParkManage * @return */ public static BigDecimal calculate(CarParkingRecord record, CarParkManage carParkManage){ long minutes = DateUtil.between(record.getGmtInto(), DateUtils.getTimestamp(), DateUnit.MINUTE); minutes = minutes - carParkManage.getFreeTime(); if(minutes>0){ BigDecimal count = NumberUtil.div(new BigDecimal(minutes),carParkManage.getTimeUnit()); count = NumberUtil.round(count,0); BigDecimal cost = NumberUtil.mul(count,carParkManage.getUnitCost()); cost = NumberUtil.round(cost,0); if(cost.compareTo(carParkManage.getMaxMoney())>1){ return carParkManage.getMaxMoney(); } return cost; }else{ return new BigDecimal(BigInteger.ZERO); } }
时间: 2023-12-26 20:06:58 浏览: 79
这是一个计算停车费用的工具类,其中包含了一个静态方法 calculate。该方法接受两个参数:CarParkingRecord 类型的 record 对象和 CarParkManage 类型的 carParkManage 对象。CarParkingRecord 对象包含了车辆进入停车场的时间,而 CarParkManage 对象则包含了停车场的相关配置信息,如免费时间、单位时间、单位费用和最高费用等。该方法的返回值是 BigDecimal 类型的费用。
具体实现中,该方法首先计算车辆停放的时间(以分钟为单位),然后减去免费时间。如果停放时间仍大于零,则计算停放时间所对应的费用,并进行四舍五入。如果所得费用大于最高费用,则返回最高费用。最后返回计算得到的费用。如果停放时间小于等于零,则返回零。
相关问题
写一个java bigdecimal加减乘除工具类
好的,我可以为您编写一个Java BigDecimal加减乘除工具类,以下是示例代码:
import java.math.BigDecimal;
public class BigDecimalUtil {
/**
* 加法
*
* @param d1 加数1
* @param d2 加数2
* @return 两数之和
*/
public static BigDecimal add(BigDecimal d1, BigDecimal d2) {
return d1.add(d2);
}
/**
* 减法
*
* @param d1 被减数
* @param d2 减数
* @return 两数之差
*/
public static BigDecimal subtract(BigDecimal d1, BigDecimal d2) {
return d1.subtract(d2);
}
/**
* 乘法
*
* @param d1 乘数1
* @param d2 乘数2
* @return 两数之积
*/
public static BigDecimal multiply(BigDecimal d1, BigDecimal d2) {
return d1.multiply(d2);
}
/**
* 除法
*
* @param d1 被除数
* @param d2 除数
* @param scale 保留小数位数
* @return 两数之商
* @throws IllegalArgumentException scale参数小于0时抛出异常
*/
public static BigDecimal divide(BigDecimal d1, BigDecimal d2, int scale) {
if (scale < 0) {
throw new IllegalArgumentException("scale参数必须大于等于0");
}
return d1.divide(d2, scale, BigDecimal.ROUND_HALF_UP);
}
}
您可以使用以上工具类进行BigDecimal的加减乘除运算。
请注意,以上代码仅供参考,您需要根据具体需求进行修改和完善。
阅读全文