Fala andre, Desculpa cara, mas não consegui falzer com seu ultimo exemplo, eu conseigo pegar o primeiro e ultimo dia do mes, abaixo o código:
Calendar dataAtual = Calendar.getInstance();
Calendar primeiroDia = Calendar.getInstance();
Calendar ultimoDia = Calendar.getInstance();
//1º dia do mês atual
primeiroDia.add(Calendar.DAY_OF_MONTH, -dataAtual.get(Calendar.DAY_OF_MONTH));
primeiroDia.add(Calendar.DAY_OF_YEAR, 1);
String primeirodia = dataAtualGregorianCalendar(primeiroDia.getTime());
Date dprimeirodia = sdf.parse(primeirodia);
System.out.println(dataAtualGregorianCalendar(primeiroDia.getTime()));
//Ultimo dia do mês atual
ultimoDia.add(Calendar.MONTH, 1);
ultimoDia.add(Calendar.DAY_OF_MONTH, -dataAtual.get(Calendar.DAY_OF_MONTH));
String ultimodia = dataAtualGregorianCalendar(ultimoDia.getTime());
System.out.println(dataAtualGregorianCalendar(ultimoDia.getTime()));
//==----------------------
System.out.println("o primeiro dia é :"+primeirodia+" o ultimo dia é: "+ultimodia);
Tambem consigo pegar a data de segunda e sexta da semana corrente, porém não consigo de todas as semanas, abaixo o codigo
private static Date resolvePrimeiroUltimo(Date data, boolean isPrimeiro) {
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTime(data);
if (isPrimeiro) {
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
} else {
calendar.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
}
return calendar.getTime();
Date date = new Date();
Date primeiro = resolvePrimeiroUltimo(date, true);
String sprimeiro = dataAtualGregorianCalendar(primeiro);
Date ultimo = resolvePrimeiroUltimo(date, false);
String sultimo = dataAtualGregorianCalendar(ultimo);
System.out.println(sprimeiro + " - " + sultimo);
Se poderes me ajudar te agradeço muito.