Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Вывод даты в формате: час назад, день назад, неделя 1 час назад / 4 сообщений из 4, страница 1 из 1
30.10.2013, 11:23:27
    #38446314
Zhazhah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод даты в формате: час назад, день назад, неделя 1 час назад
Здравствуйте, подскажите каким образом такое реализовать, например:
Есть дата регистрации и текущая дата, как вычислить разницу и форматировать в:

1 час
2 часа
...
1 день
2 дня
....
1 неделя 1 день
1 неделя 2 дня
...


и так далее?

Я вот реализовал, жалкое подобие того что хочу

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
        String sourceDate = "2013-10-30 08:10:20";
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        Date create = format.parse(sourceDate);
 
        long time = System.currentTimeMillis() - create.getTime();
        long day = (time / (1000 * 60 * 60 * 24));
        long hour = (time / (1000 * 60 * 60));
        long minute = (((time) / (1000 * 60)) % 60);
        String string = "";
 
        if (day == 0) {
 
            if (hour > 0) {
                if (hour == 1) {
                    string = "Час ";
                } else if (hour == 21) {
                    string = hour + " час ";
                } else if ((hour >= 2 && hour <= 4) || (hour >= 22 && hour <= 24)) {
                    string = hour + " часa ";
                } else if (hour >= 5 && hour <= 20) {
                    string = hour + " часов ";
                }
                string = string + "";
            } else {
                if (minute > 0) {
                    string = minute + " мин";
                } else {
                    string = "Только что";
                }
            }
        } else {
            string = new SimpleDateFormat("d MMM yy в HH:mm").format(create);
        }
...
Рейтинг: 0 / 0
30.10.2013, 11:30:46
    #38446324
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод даты в формате: час назад, день назад, неделя 1 час назад
Не в каждых сутках 24 часа.
Используй http://www.joda.org/joda-time/
Этот API вроде включили в Java 8.
...
Рейтинг: 0 / 0
30.10.2013, 15:11:36
    #38446795
mesier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод даты в формате: час назад, день назад, неделя 1 час назад
Blazkowicz с языка снял ответ.. ))
В фрэймворке есть готовые функции minusHours, minusMonths и так далее.
...
Рейтинг: 0 / 0
30.10.2013, 16:00:34
    #38446931
avp.mk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод даты в формате: час назад, день назад, неделя 1 час назад
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
    public static String hoursText(long сount) {
        if (сount < 0) {
            сount = -сount;
        }
        int ost = (int) (сount % 100);
        if ((ost > 10) && (ost < 20)) {
            return "часов";
        } else {
            switch (ost % 10) {
                case 1:
                    return "час";
                case 2:
                case 3:
                case 4:
                    return "часа";
                default:
                    return "часов";
            }
        }
    }
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Вывод даты в формате: час назад, день назад, неделя 1 час назад / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]