Как установить дату сегодня, 1 день, 2 дня и т. д.

У меня есть массив дат, и я устанавливаю данные в свой список.

holder.getDayReceipt().setText(receiptList.get(position).getCreatedDate().toString());

Мне нужно установить дату в этом формате:

Today  (16 June)
1 day  (15 June)
2 day  (14 June)
..............

Как это сделать?

РЕДАКТИРОВАТЬ: Вы меня не поняли

вместо "16 июня" я хочу сегодня
вместо "15 июня" я хочу 1 день вместо "14 июня" я хочу 2 дня

введите здесь описание изображения


person ip696    schedule 16.06.2015    source источник
comment
Голыми руками. 1/вычислить смещение 2/некоторое форматирование даты 3/вывести   -  person    schedule 16.06.2015
comment
Найдите API, связанный с java.util.Calendar. Используйте его в соответствии с вашими требованиями.   -  person Prashant    schedule 16.06.2015


Ответы (2)


Я предлагаю использовать библиотеку Joda на время

Например:

public boolean isAfterPayDay(DateTime datetime) {
 if (datetime.getMonthOfYear() == 2) {
 // February is month 2!!
 return datetime.getDayOfMonth() > 26;
 }
 return datetime.getDayOfMonth() > 28;
 }
person Andrea Cinesi    schedule 16.06.2015

Вы можете реализовать этот фрагмент кода

public String getTimeDiff(long secondsTimeDiff)
{       
    long secondsInOneDay = 84600;
    int maxDaysAgo = 15;

    if ( secondsTimeDiff < secondsInOneDay)
    {
        return "today";
    }
    else if ( secondsTimeDiff < 2*secondsInOneDay)
    {
         return "1 day";
    }
    else if ( secondsTimeDiff < maxDaysAgo*secondsInOneDay)
    {
        int days = (int) (secondsTimeDiff / secondsInOneDay);
        return days + " day";
    }
    else
    {
        //use normal DateUtils logic here...
        return "....";
    }
}

Надеюсь, это будет полезно для вас!

person Garima Mathur    schedule 16.06.2015