Софтуерно Инженерство
Loading...
+ Нов въпрос
radoslav.venchev avatar radoslav.venchev 2 Точки

Task: Time + 15

Ако някой има изграден подход за решението на тази задача, моля нека помогне...

- като се вземат входящите стойности на час и минути, после какво трябва да се направи за да се изведат по даденото условие по долу?

 

Да се напише програма, която чете час и минути от 24-часово денонощие, въведени от потребителя и изчислява колко ще е часът след 15 минути. Резултатът да се отпечата във формат часове:минути. Часовете винаги са между 0 и 23, а минутите винаги са между 0 и 59. Часовете се изписват с една или две цифри. Минутите се изписват винаги с по две цифри, с водеща нула, когато е необходимо. 

 

Ако имате идеи, моля помогнете...

 

Благодаря предварително.

Тагове:
0
Programming Basics with Java
ValentinTyanov avatar ValentinTyanov 21 Точки
Best Answer

Ето подходът, който ползвах аз.

 

import java.util.Scanner;

public class Time_15Mins {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int hours = Integer.parseInt(scanner.nextLine());
        int minutes = Integer.parseInt(scanner.nextLine());

        int totalMinutes = hours * 60 + minutes + 15;

        hours = totalMinutes / 60;
        minutes  = totalMinutes % 60;

        if (hours >23){
            hours = 0;
        }
        if (minutes < 10){
            System.out.printf("%d:0%d", hours, minutes);
        } else {
            System.out.printf("%d:%d", hours, minutes);
        }
    }
}

 

Общо взето, вкарваш си променливите, които ще се въведат от конзолата. След това минутите делиш на 60  с / , за да се получи цяло число за часове, а после минутите делиш на 60 с %, за да остане само остатъка, който реално са минутите.

После ако часовете са над 23  ги приравняваш на 0, понеже единствения вариант да е над 23 часът е с добавените 15 минути да е станало след полунощ, т.е часът е бил зададен от 0 до 23 и в последствие може да е станало след полунощ след добавените 15 минути , например ако е било 23:50.

След това, ако минутите са от 0 до 9 принтира с една нула пред минутите, за да изпише например 23:08, а не 23:8.

Ако не, просто изпринтира числата, както са.

Надявам се да съм помогнал  :)

0
radoslav.venchev avatar radoslav.venchev 2 Точки

  Наистина много ти благодаря!

 

0
ValentinTyanov avatar ValentinTyanov 21 Точки

Няма защо, лека вечер!

0
mark79 avatar mark79 631 Точки

Здравей,

може да оптимизираш изхода по следния начин на един ред и без проверка дали са по-малко от 10, а само с форматиране.

System.out.printf("%d:%02d", hours, minutes);

Поздрави :)

0