Função para validação de datas

Publicado por Angelito Monteiro Goulart (última atualização em 18/09/2009)

[ Hits: 22.928 ]

Homepage: http://angelitomg.com

Download data.h




Função para validação de datas que recebe três números como parâmetros (dia, mês, ano) e retorna 1 caso a data seja válida e 0 caso a data seja inválida.

  



Esconder código-fonte

/*
*Biblioteca para validacao de datas
*
*Retorna 1 caso a data seja correta
*e 0 caso a data esteja incorreta
*
*Angelito M. Goulart
*Setembro/2009
*
*/
int valida_data(int dia, int mes, int ano)
    {
    if ((dia >= 1 && dia <= 31) && (mes >= 1 && mes <= 12) && (ano >= 1900 && ano <= 2100)) //verifica se os numeros sao validos
        {
            if ((dia == 29 && mes == 2) && ((ano % 4) == 0)) //verifica se o ano e bissexto
            {
                return 1;
            }
            if (dia <= 28 && mes == 2) //verifica o mes de feveireiro
            {
                return 1;
            }
            if ((dia <= 30) && (mes == 4 || mes == 6 || mes == 9 || mes == 11)) //verifica os meses de 30 dias
            {
                return 1;
            }
            if ((dia <=31) && (mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes ==8 || mes == 10 || mes == 12)) //verifica os meses de 31 dias
            {
                return 1;
            }
            else
            {
                return 0;
            }
      }
       else
           {
                return 0;
           }
}

Scripts recomendados

Função fatorial recursiva

Fazendo o somatório de 1 até N

Simples gerador de números primos

Damas em C

Agenda Eletrônica


  

Comentários
[1] Comentário enviado por lm.pintanel em 28/11/2009 - 09:46h

No trecho do seu código:
" if ((dia == 29 && mes == 2) && ((ano % 4) == 0)) //verifica se o ano e bissexto"

fiz a seguinte alteração que contempla todos os anos bissextos:

if ((dia == 29 && mes == 2) && ((ano % 4) == 0)&& ((ano % 100)!=0) ||((ano % 400) ==0))

mais um comentário e boa pratica de programção é que as funções devolvam "0" quando bem sucedidas.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts