Função para validação de datas

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

[ Hits: 29.083 ]

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 boa para ler string em C

Programa que Exibe centro da tela

Lotando a memória do micro

Temperatura

Agenda eletrônica feita em C


  

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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts