You are here: Home » Учебник » Учебное задание: отображение текущего времени

Учебное задание: отображение текущего времени

Ключевой момент: вы можете вызвать System.currentTimeMillis(), которая возвращает текущее время.

Задача заключается в разработке программы, которое показывает текущее время в GMT (Greenwich Mean Time, т.е. среднее время по Гринвичу) в формате часы:минуты:секунды, т.е. 13:19:8.

Метод currentTimeMillis в классе System возвращает текущее время в миллисекундах, истёкшее с полуночи 1 января 1970 GMT, как показано на следующем рисунке:

Это время известно как Эра UNIX (UNIX epoch). Эра – это точка, когда началось время, а 1970 – это год, когда официально представлена операционная система UNIX.

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

  1. Получить общее число миллисекунд с полуночи 1 января 1970 в totalMilliseconds вызовом System.currentTimeMillis() (к примеру, 1203183068328 миллесекунд).
  2. Получить общее число секунд totalSeconds разделив totalMilliseconds на 1000 (например, 1203183068328 миллисекунд / 1000 = 1203183068 секунд).
  3. Вычислить текущую секунд из totalSeconds % 60 (например, 1203183068 секунд % 60 = 8, что будет текущей секундой).
  4. Получить общее количество минут totalMinutes разделив totalSeconds на 60 (к примеру, 1203183068 секунд / 60 = 20053051 минут).
  5. Вычислить текущее время из totalMinutes % 60 (к примеру, 20053051 минут % 60 = 31, это будет текущая минута).
  6. Получить общее количество часов totalHours разделив totalMinutes на 60 (например, 20053051 минут / 60 = 334217 часов).
  7. Вычислить текущий час из totalHours % 24 (например, 334217 часов % 24 = 17, это будет текущий час).

Полная программа:

public class ShowCurrentTime {
    public static void main(String[] args) {
        // Получить общее количество миллисекунд с полночи 1 января 1970
        long totalMilliseconds = System.currentTimeMillis();

        // Получить общее количество миллисекунд с полночи 1 января 1970
        long totalSeconds = totalMilliseconds / 1000;

        // Рассчитать текущую секунду этой минуты и этого часа
        long currentSecond = totalSeconds % 60;
        
        // Получить общее количество минут
        long totalMinutes = totalSeconds / 60;

        // Рассчитать текущую минуту этого часа
        long currentMinute = totalMinutes % 60;

        // Получить общее количество часов
        long totalHours = totalMinutes / 60;

        // Рассчитать текущий час
        long currentHour = totalHours % 24;

        // Отобразить результаты
        System.out.println("Текущее время " + currentHour + ":"
                + currentMinute + ":" + currentSecond + " GMT");
    }
}

Строка 4 вызывает System.currentTimeMillis() для получения текущего времени в миллисекундах, как величину long. Поэтому все переменные в этой программе объявлены как тип long. Секунды, минуты и часы извлекаются из текущего времени используя операторы / и % (строки 6–22).

Проверь себя:

  1. Как вы получаете текущую секунду, минуту и час?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

wp-puzzle.com logo