1.停车场计费,规则:3小时内(含)5元,每增加1小时加收1元,停车不足1小时的按1小时计算,24小时最高限额20元。如果一辆车周一早上8:40入场,周五早上7:10离场,会产生多少停车费?(答案需写明多少费用、计算思路和代码)java实现
时间: 2024-05-21 17:10:54 浏览: 89
billing.zip_java停车场_停车计费_停车计费 算法
5星 · 资源好评率100%
答案:
停车时长为4天22小时30分钟,转换成小时为118.5小时,因为超过了24小时的最高限额,所以最终停车费用为20元。
计算思路:
1.计算停车时长,转换成小时。
2.根据停车时长计算停车费用,根据规则判断每个小时的费用是多少。
3.如果停车费用超过了24小时的最高限额,取最高限额作为停车费用。
代码实现:
import java.util.Calendar;
import java.util.Date;
public class ParkingFee {
public static void main(String[] args) {
Date enterTime = getDate(2021, 10, 18, 8, 40);
Date exitTime = getDate(2021, 10, 22, 7, 10);
double hours = getHours(enterTime, exitTime);
double fee = getFee(hours);
System.out.println("停车费用为:" + fee + "元");
}
// 获取日期对象
public static Date getDate(int year, int month, int day, int hour, int minute) {
Calendar calendar = Calendar.getInstance();
calendar.set(year, month - 1, day, hour, minute);
return calendar.getTime();
}
// 获取停车时长
public static double getHours(Date enterTime, Date exitTime) {
long diff = exitTime.getTime() - enterTime.getTime();
double hours = diff / (1000 * 60 * 60.0);
if (hours < 1) {
hours = 1;
}
return hours;
}
// 获取停车费用
public static double getFee(double hours) {
double fee = 5;
if (hours > 3) {
fee += (hours - 3);
}
if (fee > 20) {
fee = 20;
}
return fee;
}
}
阅读全文