package br.com.dgimenes.nasapic.util;
import android.content.Context;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import br.com.dgimenes.nasapic.R;
public class DateUtils {
private static final String OLDER_THAN_ONE_WEEK_FORMAT = "MMM, dd";
private static final String WEEK_DAY_FORMAT = "EEEE";
private static final String OLDER_THAN_ONE_YEAR_FORMAT = "yyyy-MM-dd";
private static final int ONE_DAY_IN_MILI = 1000 * 60 * 60 * 24;
private static SimpleDateFormat olderThanOneWeekDateFormatter =
new SimpleDateFormat(OLDER_THAN_ONE_WEEK_FORMAT);
private static SimpleDateFormat weekDayDateFormatter =
new SimpleDateFormat(WEEK_DAY_FORMAT);
private static SimpleDateFormat olderThanOneYearDateFormatter =
new SimpleDateFormat(OLDER_THAN_ONE_YEAR_FORMAT);
public static String friendlyDateString(Context context, Date date) {
Calendar calNow = Calendar.getInstance();
long nowInMili = calNow.getTime().getTime();
long targetInMili = date.getTime();
long differenceInMili = nowInMili - targetInMili;
if (differenceInMili < ONE_DAY_IN_MILI) {
return context.getResources().getString(R.string.today);
} else if (differenceInMili < ONE_DAY_IN_MILI * 2) {
return context.getResources().getString(R.string.yesterday);
} else if (differenceInMili < ONE_DAY_IN_MILI * 7) {
String weekDay = weekDayDateFormatter.format(date);
return StringUtils.capitalizeFirstLetter(weekDay);
} else if (differenceInMili < (long) ONE_DAY_IN_MILI * 365) {
String dateStr = olderThanOneWeekDateFormatter.format(date);
return StringUtils.capitalizeFirstLetter(dateStr);
} else {
String dateStr = olderThanOneYearDateFormatter.format(date);
return StringUtils.capitalizeFirstLetter(dateStr);
}
}
}