停车场实现不同时间段内不同的收费标准
时间: 2023-12-11 14:03:55 浏览: 33
好的,以下是一个 Java 代码示例,实现停车场按不同时间段收取不同费用的功能。假设停车场收费规则如下:
- 8:00-18:00:每小时收费 10 元;
- 18:00-22:00:每小时收费 15 元;
- 22:00-8:00:每小时收费 8 元。
示例代码如下:
```java
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.LocalTime;
public class ParkingLot {
private LocalDateTime enterTime;
private LocalDateTime exitTime;
public void enter() {
enterTime = LocalDateTime.now();
}
public void exit() {
exitTime = LocalDateTime.now();
}
public int calculateFee() {
int fee = 0;
LocalDateTime tempEnterTime = enterTime;
while (tempEnterTime.isBefore(exitTime)) {
LocalDateTime tempExitTime = tempEnterTime.plusHours(1);
if (tempExitTime.isAfter(exitTime)) {
tempExitTime = exitTime;
}
int hour = tempEnterTime.getHour();
if (hour >= 8 && hour < 18) {
fee += Duration.between(tempEnterTime, tempExitTime).toHours() * 10;
} else if (hour >= 18 && hour < 22) {
fee += Duration.between(tempEnterTime, tempExitTime).toHours() * 15;
} else {
fee += Duration.between(tempEnterTime, tempExitTime).toHours() * 8;
}
tempEnterTime = tempExitTime;
}
return fee;
}
}
```
其中,`enter()` 方法表示车辆进入停车场,`exit()` 方法表示车辆离开停车场,`calculateFee()` 方法计算停车费用。在计算停车费用时,使用了一个循环,每次计算进入时间和下一个整点时间之间的停车费用,直到计算出离开时间的停车费用。在计算停车费用时,使用了 `LocalTime` 类来获取小时数,根据不同的时间段设置不同的收费标准。