之后每小时计算一次罚款,然后又罚款

时间:2014-04-10 20:31:20

标签: java

我需要计算停车收费表的罚款。汽车非法停放的第一个小时或其任何部分的罚款为25美元。汽车非法停放的每增加一小时或其中一部分将额外增加10.00美元。我无法弄清楚如何计算每增加一小时。

到目前为止我所拥有的:

if(car.getMinutesParked()-meter.getminutesPurchased()<=60)
{
    totalFine = FINE;
}   
else if(car.getMinutesParked()-meter.getminutesPurchased()>60)
{
    totalFine = FINE + (ADDITIONAL_FINE)
}

3 个答案:

答案 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;
}