package carpool.common;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
import carpool.configurations.CarpoolConfig;
public class DateUtility {
public static long milisecInDay = 86400000l;
public static long milisecInHour = 3600000l;
public static Calendar getCurTimeInstance(){
return Calendar.getInstance(TimeZone.getTimeZone(CarpoolConfig.timeZoneIdNY));
}
public static long getCurTime(){
Calendar c = getCurTimeInstance();
return c.getTimeInMillis();
}
public static String toSQLDateTime(Calendar c){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(c.getTime());
}
public static Calendar DateToCalendar(Date date){
if (date==null)return null;
Calendar cal = getCurTimeInstance();
cal.setTime(date);
return cal;
}
public static String getNotificationDateString(Calendar day){
return (day.MONTH+1) + "月" + day.DAY_OF_MONTH + "日";
}
public static int getHourDifference(Calendar startTime, Calendar endTime){
return (int) ((endTime.getTimeInMillis() - startTime.getTimeInMillis())/ (1000*60*60));
}
public static Calendar castFromAPIFormat(String dateString){
Calendar cal = getCurTimeInstance();
try {
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
cal.setTime(sdf1.parse(dateString));
} catch (ParseException e) {
e.printStackTrace();
}
return cal;
}
public static String castToAPIFormat(Calendar c){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(c.getTime());
}
public static String getTimeStamp(){
return getCurTime() +"";
}
public static Calendar convertToStandard(Calendar old){
Calendar Standard = getCurTimeInstance();
Calendar oldr = Calendar.getInstance(TimeZone.getTimeZone(old.getTimeZone().getID()));
int hdif = Standard.get(Calendar.HOUR_OF_DAY) - oldr.get(Calendar.HOUR_OF_DAY);
int mdif = Standard.get(Calendar.MINUTE) - oldr.get(Calendar.MINUTE);
int sdif = Standard.get(Calendar.SECOND) - oldr.get(Calendar.SECOND);
old.add(Calendar.SECOND,sdif);
old.add(Calendar.MINUTE,mdif);
old.add(Calendar.HOUR_OF_DAY,hdif);
return old;
}
public static int compareday(Calendar cal1, Calendar cal2){
if (cal1.get(Calendar.YEAR) < cal2.get(Calendar.YEAR)){
return -1;
}
else if (cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) && cal1.get(Calendar.DAY_OF_YEAR) < cal2.get(Calendar.DAY_OF_YEAR)){
return -1;
}
else if (cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) && cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR)){
return 0;
}
else{
return 1;
}
}
}