Расчет часов и минут по введенным секундам - PullRequest
0 голосов
/ 09 мая 2020

Я новичок в изучении Java, и мне это очень нравится. Мой репетитор задал мне вопрос, и я пытаюсь его понять. Вопрос такой: напишите программу для отображения часа и минуты из общих секунд.

Я начал его кодировать и, кажется, дошел до определенного уровня. Теперь я могу заставить программу рассчитывать, сколько минут в общем введенном времени или сколько секунд во введенном времени. Но я не могу показать их вместе, это означает, что 5000 секунд составляют 83,44 минуты или 1,39 часа. Но что я могу закодировать, чтобы он говорил 1 час 23,44 минуты. Любая инсайда полезна. Спасибо!

Я приложил уже написанный мной код.

package HW5820;

import java.util.Scanner;


public class HoursAndMinutes {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //write a program to display hour and minute from total seconds

        Scanner input = new Scanner(System.in);

        int seconds=0;

        System.out.println("Enter number of seconds");
        seconds = input.nextInt();

        int min;
        min = seconds/60;

        int hours;
        hours= min/60;


        System.out.println("Your entered time is "+min+" Minutes or, "+hours+" hour");

1 Ответ

0 голосов
/ 09 мая 2020

Начните с наивысшего уровня (часов) и постепенно снижайте его, заменяя seconds на количество секунд, оставшихся от предыдущей операции:

int seconds = input.nextInt();

int hours = (int)(seconds / 3600); // Seconds in an hour
seconds = seconds % 3600; // Seconds left over

int minutes = (int)(seconds / 60); // Seconds in a minute
seconds = seconds % 60; // Seconds left over

System.out.println("Your entered time is " + 
                   hours + " hours, " + 
                   minutes + " minutes, and " + 
                   seconds + " seconds.");

В качестве дальнейшего улучшения вы можете исключить magi c числа, назначая их хорошо названным переменным, например:

int SECONDS_IN_HOUR = 3600;
int SECONDS_IN_MINUTE = 60;

А затем используйте их в своих операциях:

int hours = (int)(seconds / SECONDS_IN_HOUR);
seconds = seconds % SECONDS_IN_HOUR; // Seconds left over

int minutes = (int)(seconds / SECONDS_IN_MINUTE);
seconds = seconds % SECONDS_IN_MINUTE; // Seconds left over
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...