Помощ за задача
Може ли малко помощ с тази задача:
Студент трябва да пропътува n километра. Той има избор измежду три вида транспорт:
· Такси. Начална такса: 0.70 лв. Дневна тарифа: 0.79 лв. / км. Нощна тарифа: 0.90 лв. / км.
· Автобус. Дневна / нощна тарифа: 0.09 лв. / км. Може да се използва за разстояния минимум 20 км.
· Влак. Дневна / нощна тарифа: 0.06 лв. / км. Може да се използва за разстояния минимум 100 км.
Напишете програма, която въвежда броя километри n и период от деня (ден или нощ) и изчислява цената на най-евтиния транспорт.
Вход
От конзолата се четат два реда:
· Първият ред съдържа числото n – брой километри – цяло число в интервала [1…5000].
· Вторият ред съдържа дума “day” или “night” – пътуване през деня или през нощта.
Изход
Да се отпечата на конзолата най-ниската цена за посочения брой километри.
Примерен вход и изход
| Вход | Изход | Обяснения | 
| 5 day | 4.65 | Разстоянието е под 20 км à може да се ползва само такси. Началната такса е 0.70 лв. Понеже е през деня, тарифата е 0.79 лв. / км. С такси цената е: 0.70 + 5 * 0.79 = 4.65 лв. | 
| 7 night | 7 | Разстоянието е под 20 км à може да се ползва само такси. Началната такса е 0.70 лв. Понеже е през нощта, тарифата е 0.90 лв. / км. С такси цената е: 0.70 + 7 * 0.90 = 7.00 лв. | 
| 25 day | 2.25 | Разстоянието е над 20 км à може да се ползва автобус, но не може да се ползва влак. Автобусът е най-евтиния възможен вариант. С автобус цената е: 25 * 0.09 = 2.25 лв. | 
| 180 night | 10.8 | Разстоянието е над 100 км à може да се ползва влак. Влакът е най-евтиният възможен вариант за пътуване. С влак цената е: 180 * 0.06 = 10.80 лв. | 
Мисля, че кода ми е вечен, но не разбирам защо програма гърми.
Моят код:
import java.util.Scanner;
/**
 * Created by WinOfficially on 11/1/2016.
 */
public class p17_TransportCoast {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        double kminput = Integer.parseInt(console.nextLine());
        String time = console.nextLine();
        double resultday = Double.parseDouble(console.nextLine());
        double resultnight = Double.parseDouble(console.nextLine());
        if (kminput < 20) {
            if (time.equalsIgnoreCase("day")) {
                resultday = 0.70 + (0.79 * kminput);
            } else if (time.equalsIgnoreCase("night")) {
                resultnight = 0.70 + (0.90 * kminput);
            }
        } else if (kminput >= 100) {
            if (time.equalsIgnoreCase("day")) {
                resultday = 0.06 * kminput;
            } else if (time.equalsIgnoreCase("night")) {
                resultnight = 0.06 * kminput;
            }
        } else if (kminput >= 20) {
            if (time.equalsIgnoreCase("day")) {
                resultday = 0.09 * kminput;
            } else if (time.equalsIgnoreCase("night")) {
                resultnight = 0.09 * kminput;
            }
        }
        if (time.equalsIgnoreCase("day")) {
            System.out.println(resultday);
        } else if (time.equalsIgnoreCase("night")) {
            System.out.println(resultnight);
        }
    }
}
        
Да прав си много ти благодаря. Що за тъпа грешка съм направил.