package com.appspot.finajjarane.framework.generic;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.ResourceBundle;
import org.springframework.context.i18n.LocaleContextHolder;
import com.appspot.finajjarane.framework.models.DateDetailsModel;
public class Utils {
public static String getLanguage(){
return LocaleContextHolder.getLocale().getLanguage() + "_" + LocaleContextHolder.getLocale().getCountry();
}
public static DateDetailsModel dateToDateDetailsModel(final Date date, String lang){
if(null==lang){
lang = Utils.getLanguage();
}
DateDetailsModel dateModel = new DateDetailsModel();
Calendar calendar = Calendar.getInstance();
dateModel.setDate(date);
calendar.setTime(date);
String dateFormat = Utils.getTranslatedMessage("date.format", lang);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat);
if(null!=date){
dateModel.setDayNumber(calendar.get(Calendar.DAY_OF_WEEK));
dateModel.setMonthNumber(calendar.get(Calendar.MONTH));
dateModel.setYearNumber(calendar.get(Calendar.YEAR));
dateModel.setHour(calendar.get(Calendar.HOUR_OF_DAY));
dateModel.setMinute(calendar.get(Calendar.MINUTE));
dateModel.setSeconde(calendar.get(Calendar.SECOND));
dateModel.setFormattedDate(simpleDateFormat.format(date));
}
return dateModel;
}
public static DateDetailsModel dateToDateDetailsModel(final Date date){
return dateToDateDetailsModel(date, null);
}
public static String getTranslatedMessage(String key, String lang){
Locale locale;
if(null==lang){
locale = LocaleContextHolder.getLocale();
}
else{
locale = new Locale(lang);
}
return ResourceBundle.getBundle("messages",locale).getString(key);
}
public static long getDatesDifferenceInSenconds(Date referenceDate, Date currentDate, boolean abs){
Calendar calendarForCurrent = Calendar.getInstance();
Calendar calendarForReference = Calendar.getInstance();
calendarForCurrent.setTime(currentDate);
calendarForReference.setTime(referenceDate);
if(abs){
return Math.abs(calendarForReference.getTimeInMillis() - calendarForCurrent.getTimeInMillis())/1000;
}
else{
return (calendarForReference.getTimeInMillis() - calendarForCurrent.getTimeInMillis())/1000;
}
}
public static String slugify(String str){
return str.replaceAll("~[^\\\\pL\\d]+~u", "-").trim().replaceAll("~[^-\\w]+~", "");
}
}