Re:Expirando dados apartir da data!

3 respostas
matheuscechito

TimerTask

3 Respostas

Pedrosa

Na edição 19 da Mundo Java saiu uma matéria muito interessante sobre o framework Quartz vale a pena dar uma olhada.

Esse Quartz é um sistema de agendamento de tarefas.

http://sourceforge.net/projects/quartz

Cleo_Nascimento

Olá pessoa, estou tendo dificuldades em fazer uma lógica consistente; por esse motivo gostaria de uma ajuda.

Estou querendo fazer a validação de alguns dados do seguinte modo:

tipo esses dados foram emitidos no dia 10/11/2006 e se caso ele passar mais de 60 dias ele será expirado.

Como faço isso? :frowning:

Atenciosamente,

Cléo Nascimento

Cleo_Nascimento

Auew pessoal consegui fazer depois de muinta dor de cabeça kkkk

/**
     * Calcula a quantidade de dias existentes em um período.
     *
     * @param dataInicial  Descrição do parâmetro
     * @param dataFinal    Descrição do parâmetro
     * @return             a quantidade de dias existentes entre o período.
     */
    public static int getQuantidadeDiasPeriodoSemUsarMiliSegundos(Date dataInicial, Date dataFinal) {
        int diasMes[] = {31,0,31,30,31,30,31,31,30,31,30,31};
        int retorno = 0;
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(dataInicial);
        int diaInicial = calendar.get(Calendar.DAY_OF_MONTH) - 1;
        int mesInicial = calendar.get(Calendar.MONTH);
        int anoInicial = calendar.get(Calendar.YEAR);
        calendar.setTime(dataFinal);
        int diaFinal = calendar.get(Calendar.DAY_OF_MONTH);
        int mesFinal = calendar.get(Calendar.MONTH);
        int anoFinal = calendar.get(Calendar.YEAR);

        int inicioPeriodoFinal = 0;
        boolean saoMesmoAno = true;

        if(anoInicial != anoFinal){
            if ( (anoInicial % 4) == 0){
                diasMes[1] = 29;
            }else{
                diasMes[1] = 28;
            }
            for(int k = mesInicial; k < 12; k++){
                if (k == mesInicial){
                    retorno += diasMes[k] - diaInicial;
                }else{
                    retorno += diasMes[k];
                }
            }
            anoInicial++;
            saoMesmoAno = false;
        }else{
            inicioPeriodoFinal = mesInicial;
        }
        while(anoInicial < anoFinal){
            if ( (anoInicial % 4) == 0){
                diasMes[1] = 29;
            }else{
                diasMes[1] = 28;
            }

            for(int k = 0; k < 12; k++){
                retorno += diasMes[k];
            }
            anoInicial++;
        }
        if ( (anoInicial % 4) == 0){
            diasMes[1] = 29;
        }else{
            diasMes[1] = 28;
        }
        for(int k = inicioPeriodoFinal; k < mesFinal + 1; k++){
            if (k == mesFinal){
                retorno += diaFinal;
            }else if ((inicioPeriodoFinal == mesInicial) && (saoMesmoAno)){
                retorno += diasMes[k] - diaInicial;
                saoMesmoAno = false;
            }else{
                retorno += diasMes[k];
            }
        }
        return retorno;
    }

ele vai retornar os dias e ai basta colocar um if(dataExpirada <= 60) e ai pronto!

Atenciosamente,

Cléo Nascimento

Criado 23 de novembro de 2006
Ultima resposta 24 de nov. de 2006
Respostas 3
Participantes 3