Função para validação de datas
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.
Descrição
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.
/*
*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;
}
}
" 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.