Ищете в формате Java утилиты времени - PullRequest
0 голосов
/ 27 сентября 2019

Я ищу утилиты времени для Java, где я могу указать время в секундах или в милисах, и оно вернется с методами, например, getSeconds и getMinutes, чтобы я мог легко отформатировать текст, чтобы он выглядел какRemaining 1 day 2 hours 3 minutes and 4 seconds.Кто-нибудь знает кого-нибудь?

1 Ответ

0 голосов
/ 27 сентября 2019

60 секунд в минуту, 60 минут в час и 24 часа в день, поэтому:

private static final int SECONDS_IN_MINUTE = 60;
private static final int SECONDS_IN_HOUR = 60 * SECONDS_IN_MINUTE;
private static final int SECONDS_IN_DAY = 24 * SECONDS_IN_HOUR;

Тогда вам просто нужно продолжить деление:

class RemainingTime {
    private static final int SECONDS_IN_MINUTE = 60;
    private static final int SECONDS_IN_HOUR = 60 * SECONDS_IN_MINUTE;
    private static final int SECONDS_IN_DAY = 24 * SECONDS_IN_HOUR;

    private int totalSeconds, days, hours, minutes, seconds;

    public RemainingTime(int totalSeconds) {
        this.totalSeconds = totalSeconds;
        init();
    }

    private void init() {
        int remainingSeconds = totalSeconds;
        days = remainingSeconds / SECONDS_IN_DAY;

        remainingSeconds -= days * SECONDS_IN_DAY;
        hours = remainingSeconds / SECONDS_IN_HOUR;

        remainingSeconds -= hours * SECONDS_IN_HOUR;
        minutes = remainingSeconds / SECONDS_IN_MINUTE;

        remainingSeconds -= minutes * SECONDS_IN_MINUTE;
        seconds = remainingSeconds;
    }

    public int getDays() { return days; }
    public int getHours() { return hours; }
    public int getMinutes() { return minutes; }
    public int getSeconds() { return seconds; }
}

Вы используете это так:

RemainingTime rt = new RemainingTime(274119);

System.out.println(String.format(
        "Remaining %s day(s), %s hour(s), %s minute(s) and %s second(s)",
        rt.getDays(), rt.getHours(), rt.getMinutes(), rt.getSeconds()));

Выходы:

Remaining 3 day(s), 4 hour(s), 8 minute(s) and 39 second(s)
...