Сравните часы и минуты - PullRequest
1 голос
/ 10 мая 2011

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

Поэтому, когда пользователь запускает мое приложение в следующий раз, я сравниваю время, и если временной интервал превышает один час, я должен разрешить своему пользователю записывать, иначе я не должен позволять.Как эффективно сравнить часы и минуты в Java?

Ответы [ 4 ]

7 голосов
/ 10 мая 2011

С @ Dalino ответом, вы можете использовать TimeUnit enum class для преобразования времени.

long now = System.currentTimeMillis();
long lastVisit =  ...; // in milliseconds
if(TimeUnit.MILLISECONDS.toHours(now - lastVisit) > 0) {
    // allow
} 
7 голосов
/ 10 мая 2011

Получите системное время с помощью

long time = System.currentTimeMillis();

и сравните новое время со старым.Один час означает разницу в 1000 * 60 * 60 миллисекунд

2 голосов
/ 10 мая 2011

Почему бы просто не сохранить время, когда они выходят (или что-то еще), а затем при запуске, прочитать время, добавить к нему час и сравнить с текущим временем?

Вам не нужно сравнивать фактические часы и минуты - просто продолжительность времени между тогда и сейчас.

Лично я бы предложил использовать Joda Time для всей работы с датой / временем на Java, но в этом случае вы могли бы просто использовать Date и добавить значение часа в миллисекундах. Обратите внимание, что вы обязательно должны хранить дату / время в формате UTC вместо локального, так как в противном случае изменения при переходе на летнее время и т. Д. Могут испортить ситуацию.

1 голос
/ 10 мая 2011

Я бы использовал Joda Period: посмотрите здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...