package com.bocai.util; import java.text.SimpleDateFormat; import java.util.*; import com.bocai.R; public class DateUtilities { public DateUtilities() { } private static String _unitHelper(int num, String unit) { String s1; if(num == 1) s1 = (new StringBuilder()).append("1 ").append(unit).append(" ").append(Macros.FS_APPLICATION().getString(R.string.from_now)).toString(); else if(num == -1) s1 = (new StringBuilder()).append("1 ").append(unit).append(" ").append(Macros.FS_APPLICATION().getString(R.string.ago)).toString(); else if(num > 0) s1 = (new StringBuilder()).append(num).append(" ").append(unit).append(Macros.FS_APPLICATION().getString(R.string.from_now_s)).toString(); else if(num < 0) { StringBuilder stringbuilder = new StringBuilder(); int j = Math.abs(num); s1 = stringbuilder.append(j).append(" ").append(unit).append(Macros.FS_APPLICATION().getString(R.string.ago_s)).toString(); } else { s1 = null; } return s1; } private static String computeRelativeDate(Calendar calendar, int i, int j, int k, int l, int i1, int j1) { String s; if(i != 0) { SimpleDateFormat simpledateformat = regularFormat; Date date = calendar.getTime(); s = simpledateformat.format(date); } else if(j != 0) s = _unitHelper(j, Macros.FS_APPLICATION().getString(R.string.month)); else if(k != 0) s = _unitHelper(k, Macros.FS_APPLICATION().getString(R.string.day)); else if(l != 0) s = _unitHelper(l, Macros.FS_APPLICATION().getString(R.string.hour)); else if(i1 != 0) s = _unitHelper(i1,Macros.FS_APPLICATION().getString(R.string.minute)); else s = _unitHelper(j1,Macros.FS_APPLICATION().getString(R.string.second)); return s; } private static String getRelativeDate(Calendar calendar) { Calendar calendar1 = GregorianCalendar.getInstance(); int i = calendar.get(1); int j = calendar1.get(1); int k = i - j; int l = calendar.get(2); int i1 = calendar1.get(2); int j1 = l - i1; int k1 = calendar.get(5); int l1 = calendar1.get(5); int i2 = k1 - l1; int j2 = calendar.get(11); int k2 = calendar1.get(11); int l2 = j2 - k2; int i3 = calendar.get(12); int j3 = calendar1.get(12); int k3 = i3 - j3; int l3 = calendar.get(13); int i4 = calendar1.get(13); int j4 = l3 - i4; return computeRelativeDate(calendar, k, j1, i2, l2, k3, j4); } public static String getRelativeDate(Date date) { String s; if(date == null) { s = null; } else { Calendar calendar = GregorianCalendar.getInstance(); calendar.setTime(date); s = getRelativeDate(calendar); } return s; } public static final SimpleDateFormat ISO8601Format; public static final SimpleDateFormat regularFormat = new SimpleDateFormat("EEE, MMM d yyyy"); static { ISO8601Format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); SimpleDateFormat simpledateformat = ISO8601Format; TimeZone timezone = TimeZone.getTimeZone("UTC"); simpledateformat.setTimeZone(timezone); } }