2014-12-12 3 views
0

Теперь я на с Time Android назад я получаю дней назад, но не попадающие недели назадКак получить точную TimeAgo в Android

Здесь я попытался:

CharSequence CS = DateUtils.getRelativeTimeSpanString(DateUtils.MINUTE_IN_MILLIS, now.getTime(), 
        DateUtils.WEEK_IN_MILLIS, 0); 

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

, если в неделю и выше показывает, сколько недель и достигает в месяц должен показывает месяц назад или два месяца назад нравится идет на

Как я могу получить это кто может мне помочь.

ответ

0

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

public static final long AVERAGE_MONTH_IN_MILLIS = DateUtils.DAY_IN_MILLIS * 30; 

private String getRelationTime(long time) { 
    final long now = new Date().getTime(); 
    final long delta = now - time; 
    long resolution; 
    if (delta <= DateUtils.MINUTE_IN_MILLIS) { 
     resolution = DateUtils.SECOND_IN_MILLIS; 
    } else if (delta <= DateUtils.HOUR_IN_MILLIS) { 
     resolution = DateUtils.MINUTE_IN_MILLIS; 
    } else if (delta <= DateUtils.DAY_IN_MILLIS) { 
     resolution = DateUtils.HOUR_IN_MILLIS; 
    } else if (delta <= DateUtils.WEEK_IN_MILLIS) { 
     resolution = DateUtils.DAY_IN_MILLIS; 
    } else if (delta <= AVERAGE_MONTH_IN_MILLIS) { 
     return Integer.toString((int) (delta/DateUtils.WEEK_IN_MILLIS)) + " weeks(s) ago"; 
    } else if (delta <= DateUtils.YEAR_IN_MILLIS) { 
     return Integer.toString((int) (delta/AVERAGE_MONTH_IN_MILLIS)) + " month(s) ago"; 
    } else { 
     return Integer.toString((int) (delta/DateUtils.YEAR_IN_MILLIS)) + " year(s) ago"; 
    } 
    return DateUtils.getRelativeTimeSpanString(time, now, resolution).toString(); 
} 
+0

пусть я знаю, у – Manoj

+0

что AVERAGE_MONTH_IN_MILLIS этого значения Строки – Manoj

+0

@Manoj это константа, обновленный ответ – gio

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