Função para validação de datas

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

[ Hits: 21.313 ]

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

Despertador em C

Agenda eletrônica feita em C

A - Comando streql

NCURSES - Parte II

Comando strstr


  

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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts