package br.com.caelum.stella.feriado.util;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import br.com.caelum.stella.feriado.entity.Feriado;
public class DateUtil {
public static final Locale LOCALE_BRAZIL = new Locale("pt","BR");
public static final SimpleDateFormat formatterExtenso = new SimpleDateFormat("dd 'de' MMMMM 'de' yyyy");
public static final SimpleDateFormat formatterDDMM = new SimpleDateFormat("dd/MM");
public static final SimpleDateFormat formatterDDMMYYYY = new SimpleDateFormat("dd/MM/yyyy");
private static Calendar calendar = Calendar.getInstance(LOCALE_BRAZIL);
public static int getMes(Date data){
calendar.setTime(data);
return calendar.get(Calendar.MONTH)+1;
}
public static int getDiaDoMes(){
return hoje().get(Calendar.DAY_OF_MONTH);
}
public static int getDiaDoMes(Date data){
calendar.setTime(data);
return calendar.get(Calendar.DAY_OF_MONTH);
}
public static int getAno(Date data){
calendar.setTime(data);
return calendar.get(Calendar.YEAR);
}
public static int getAno(){
return hoje().get(Calendar.YEAR);
}
public static boolean mesmoDia(Date d1, Date d2){
Calendar c1 = zerarHora(d1);
Calendar c2 = zerarHora(d2);
return (c1.get(Calendar.YEAR) == c2.get(Calendar.YEAR)) && (c1.get(Calendar.DAY_OF_YEAR) == c2.get(Calendar.DAY_OF_YEAR));
}
public static Calendar hoje(){
return zerarHora(Calendar.getInstance(LOCALE_BRAZIL));
}
public static List<Date> apenasDatas(List<Feriado> feriados){
List<Date> datas = new ArrayList<Date>();
Collections.sort(feriados, Ordernador.DATA_CRESCENTE);
for(Feriado feriado : feriados){
datas.add(feriado.getData());
}
return datas;
}
public static Calendar novaInstancia(int dia, int mes, int ano){
Calendar c1 = hoje();
c1.set(ano, mes-1, dia);
return zerarHora(c1);
}
public static Calendar zerarHora(Calendar calendar){
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
return calendar;
}
public static Calendar zerarHora(Date data){
Calendar c1 = Calendar.getInstance(LOCALE_BRAZIL);
c1.setTime(data);
return zerarHora(c1);
}
}