package net.bradmont.openmpd.helpers; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import net.bradmont.openmpd.R; import net.bradmont.openmpd.OpenMPD; public class TextTools{ private static String mThisMonth = null; public static String getThisMonth(){ if (mThisMonth == null){ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM"); Calendar cal = Calendar.getInstance(); mThisMonth = dateFormat.format(cal.getTime()); } return mThisMonth; } public static String getToday(){ if (mThisMonth == null){ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calendar.getInstance(); mThisMonth = dateFormat.format(cal.getTime()); } return mThisMonth; } public static String prettyDate(String date_string){ Calendar date = mkCalendar(date_string); Calendar today = Calendar.getInstance(); if (date_string.equals(getToday())){ return OpenMPD.get().getResources().getString(R.string.today); } else if (date.get(Calendar.YEAR) == today.get(Calendar.YEAR)){ if (date.get(Calendar.DAY_OF_YEAR) + 1 == today.get(Calendar.DAY_OF_YEAR)){ return OpenMPD.get().getResources().getString(R.string.yesterday); } else if (date.get(Calendar.WEEK_OF_YEAR) == today.get(Calendar.WEEK_OF_YEAR)){ return (new SimpleDateFormat("EEEE")).format(date.getTime()); } else { return (new SimpleDateFormat("MMMM d")).format(date.getTime()); } } else { return (new SimpleDateFormat("MMMM d, yyyy")).format(date.getTime()); } } public static String prettyShortDate(String date_string){ Calendar date = mkCalendar(date_string); Calendar today = Calendar.getInstance(); if (date_string.equals(getToday())){ return OpenMPD.get().getResources().getString(R.string.today); } else if (date.get(Calendar.YEAR) == today.get(Calendar.YEAR)){ if (date.get(Calendar.DAY_OF_YEAR) + 1 == today.get(Calendar.DAY_OF_YEAR)){ return OpenMPD.get().getResources().getString(R.string.yesterday); } else if (date.get(Calendar.WEEK_OF_YEAR) == today.get(Calendar.WEEK_OF_YEAR)){ return (new SimpleDateFormat("EEEE")).format(date.getTime()); } else { return (new SimpleDateFormat("d MMM")).format(date.getTime()); } } else { return (new SimpleDateFormat("MMM d, yyyy")).format(date.getTime()); } } private static Calendar mkCalendar(String date_string){ Calendar date = Calendar.getInstance(); String [] parts = date_string.split("-"); date.set(Calendar.YEAR, Integer.parseInt(parts[0])); date.set(Calendar.MONTH, Integer.parseInt(parts[1]) -1 ); date.set(Calendar.DAY_OF_MONTH, Integer.parseInt(parts[2])); return date; } }