Dúvida com lógica sobre dia da semana e dia do mes

2 respostas
R

Bom dia, estou com um problema sobre como resolver uma dúvida. Estou precisando executar um processo todo dia 1 de cada mes. o problema é que se por acaso dia 1 for domingo ele deve ser executado no dia 2.
Peguei os dados com a classe calendar

Calendar calendar = Calendar.getInstance();
        int dia = calendar.get(Calendar.DAY_OF_MONTH);
        int mes = calendar.get(Calendar.MONTH);
        int ano = calendar.get(Calendar.YEAR);
        int diaSemana = calendar.get(Calendar.DAY_OF_WEEK);

Como posso fazer isso?
Obrigado!

2 Respostas

A
private static final int DIA_1 = 1;   
    private static final int DOMINGO = 1; //Calendar.SUNDAY retorna 1 no caso domingo
    private static Calendar c;
        
    private static String calendario(){
        c = Calendar.getInstance();
        Date d = c.getTime();
        DateFormat df = DateFormat.getDateInstance();         
        return df.format(d).toString();
    }
    
    public static void main(String[] args){
        String[] array = calendario().split("/");
        System.out.println("Data Atual: " + calendario());        
        if(Integer.parseInt(array[0]) == DIA_1 && Calendar.SUNDAY == DOMINGO){
            System.out.println("\nNão Realiza Processo!!!");                         
        }else{
            System.out.println("\nRealiza Processo!!");
        }
    }
Nesh

Olá rafael.mg06 fiz de maneira bem modularizada uma sugestão de solução:

public static void executaProcesso() {
	if (isPrimeiroDiaDoMes() && isDomingo())
		System.out.println("Executa processo dia : " + calendario().getFirstDayOfWeek());
	else
		System.out.println("Executar processo");
}

private static boolean isPrimeiroDiaDoMes() {
	int primeiroDiaDoMes = 1;
	return diaDoMes() == primeiroDiaDoMes;
}

public static boolean isDomingo() {
	int domingo = Calendar.SUNDAY;
	int diaDaSemana = calendario().get(Calendar.DAY_OF_WEEK);
	return (diaDaSemana == domingo);
}

private static int diaDoMes() {
	Calendar calendar = calendario();
	return calendar.get(Calendar.DAY_OF_MONTH);
}

private static Calendar calendario() {
	return Calendar.getInstance();
}

espero ter ajudado, até mais!

Criado 30 de maio de 2013
Ultima resposta 30 de mai. de 2013
Respostas 2
Participantes 3