我需要计算停车收费表的罚款。汽车非法停放的第一个小时或其任何部分的罚款为25美元。汽车非法停放的每增加一小时或其中一部分将额外增加10.00美元。我无法弄清楚如何计算每增加一小时。
到目前为止我所拥有的:
if(car.getMinutesParked()-meter.getminutesPurchased()<=60)
{
totalFine = FINE;
}
else if(car.getMinutesParked()-meter.getminutesPurchased()>60)
{
totalFine = FINE + (ADDITIONAL_FINE)
}
答案 0 :(得分:2)
final int delta = car.getMinutesParked() - meter.getminutesPurchased();
if (delta > 0) {
totalFine = FINE + (delta / 60)*ADDITIONAL_FINE;
}
答案 1 :(得分:1)
从逻辑上考虑一下。您只需输入需要完成的内容,请花一点时间坐下来找出如何将其转换为代码。继续您的格式:
int totalFine = 0;
int totalTime = car.getMinutesParked();
if(totalTime - meter.getMinutesPurchased() <= 60){
totalFine = FINE;
}
else{
totalFine = FINE; // add fine for first hour
totalTime = totalTime - 60; // remove that first hour for our total time
// add our initial fine + (number of additional hours * fee per additional hour)
totalFine = totalFine + ((totalTime / 60) * ADDITIONAL_FINE);
}
有一些方法可以简化代码的格式化,但我认为最好逐步显示什么是gong
答案 2 :(得分:0)
boolean firstHour = true;
int minutes = car.getMinutesParked() - meter.getMinutesPurchased();
int fineDollars = 0;
while (minutes > 0) {
if (firstHour) fineDollars += 25;
else fineDollars += 10;
firstHour = false;
minutes -= 60;
}