2012-03-07 2 views
1

Я пытаюсь найти метод внутри android для получения времени между текущей датой и датой, установленной пользователем. Например, если они выбрали дату, такую ​​как 14 июня 2012 года, я бы хотел, чтобы мое приложение на тренировку отображало счет, например, «осталось 13 дней»Получение времени между двумя датами.

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

Я видел здесь некоторый код, который показывает, как показывают, сколько времени прошло с даты, но не знаете, как изменить это на то, что мне нужно.

Есть ли какой-либо метод внутри android, который мог бы позволить это сделать?

ответ

0

This ссылка показывает, как это сделать с помощью Joda, и я согласен с их ответом, что вы должны использовать Joda вместо стандартных (испорченных) java-API. Я использовал Joda с Android и без каких-либо проблем.

+0

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

+0

Загрузите [joda] (http://joda-time.sourceforge.net/) и поместите банку в свою папку lib и добавьте ее в свой построить путь. – Theblacknight

+0

- это то, что помещено в папку в файле eclipse или в папку приложения. –

0

Один из способов - использовать объект Calendar и сравнить все поля отдельно или с помощью Даты.

Мой ответ будет использоваться Calendar.getTimeInMillis(). Затем использовать, например, ответы здесь: milliseconds to days получить от миллисекунд до нескольких дней или с помощью TimeUnit

0

Вы можете использовать андроид класс Time: http://developer.android.com/reference/android/text/format/Time.html#set(int, Int, Int, Int, Int, Int)

Создать объект времени и установите его на указанную пользователем дату. Создайте еще один объект времени и используйте метод setToNow(), чтобы установить его на текущее время. Затем вы можете преобразовать оба значения в миллис, используя метод toMillis() и вычесть выбранные миллисы из текущих миллисов, что даст вам разницу в миллисекундах. Тогда все, что вам нужно сделать, это преобразовать разницу во все единицы времени, которые вы хотите показать. Дни были бы: разница/(1000 мс/с * 60 с/мин * 60 мин/час * 24 часа в сутки)

Смежные вопросы