|
|
|
||||||||||||||||||||||
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Parceiros - CSS para Web Design - S.O.S Designers - Slackware-Brasil - Crie seu Web site - Oficina da Net |
Validar uma data com ASPFunção para comprovar se uma data é correta, ou seja, se um dia, mês ou ano são corretos, em páginas programadas com ASP. Vejamos uma função criada com Active Server Pages para fazer uma comprovação de datas. A função recebe um dia, um mês e um ano e comprovam que estes sejam numéricos e que a data criada entre todos é correta e possível no calendário.
A função recebe os dados de dia, mês e ano como string, tal como poderíamos chegar através de um formulário ou como parâmetro em uma URL. Não obstante, visto que ASP é uma linguagem pouco "typed", mesmo passando valores numéricos à função continuará dando resultados corretos. Como resultado a função devolverá um valor verdadeiro ou falso, dependendo se a data é correta ou incorreta. O código da função é o seguinte: 'valido uma data 'espero receber tres strings com o dia, o mes e o ano function validarData(dia,mes,ano) 'elimino possiveis espacos aos lados dos numeros que recebo por parametro dia = trim(dia) mes = trim(mes) ano = trim(ano) 'comprovo nº de caracteres que recebo em cada parametro sao os permitidos 'O ano pode ter ate 4 caracteres if len(dia)=0 or len(dia)>2 or len(mes)=0 or len(mes)>2 or len(ano)=0 or len(ano)>4 then validarData = false exit function end if 'compovo que os caracteres dos parametros sao numeros if (not isNumeric(dia)) or (not isNumeric(mes)) or (not isNumeric(ano)) then validarData = false exit function end if 'O mes nao pode ser maior que 12 nem menor que 1 mes = cint(mes) if mes > 12 or mes < 1 then validarData = false exit function end if dia = cint(dia) 'O dia nao pode ser menor que 1 if dia < 1 then validarData = false exit function end if 'O dia, dependendo do mes que seja, pode ter uns ou outros valores if mes=1 or mes=3 or mes=5 or mes=7 or mes=8 or mes=10 or mes=12 then 'nesses meses pode ter 31 dias if dia > 31 then validarData = false exit function end if elseif mes=2 then 'en fevereiro temos que ver se sera ano bissexto 'consigo o numero de ano de 4 cifras. 'se nos derem um valor de 2 cifras < 31 se refere a 2000 mais esse valor if ano < 31 then ano = ano + 2000 'se nos derem um valor de 2 cifras > 31 se refere a 1900 mais esse valor elseif ano < 100 then ano = ano + 1900 end if 'calculo se o ano eh bissexto 'se for divisivel por quatro e (nao divisivel por 100 ou divisivel por 400) if ((ano mod 4)=0) and ((ano mod 100)<>0 or (ano mod 400)=0) then 'eh bissexto if dia > 29 then validarData = false exit function end if else 'NAO eh bissexto if dia > 28 then validarData = false exit function end if end if else 'em todos os demais meses chegam a ter 30 dias if dia > 30 then validarData = false exit function end if end if 'se estou aqui eh porque todas as comprovacoes foram positivas validarData = true end function O código da função está comentado para que possa ser entendido mais facilmente. Basicamente, o que faz é realizar uma série de comprovações, uma atrás da outra. Se alguma das comprovações faz com que a data seja incorreta, devolve-se o valor false e sai da função. Se chega-se ao final da função e nenhuma das comprobações falhou, se devolve true, pois a data é correta. Na hora de calcular se um dia é válido, temos que saber os dias que tem um mês. Temos que prestar especial atenção ao mês de fevereiro, para saber se é bissexto. Para saber se um ano é bissexto existe a seguinte regra:
Autoria e outras referências sobre este artigo Dentro deste artigo: + 1 manual relacionado + 1 categoria relacionada + 1 Comentário sem rever
Manuais relacionados com este artigo Dentro de Workshop de ASP Seguinte: Arredondar decimais em ASP Categorias relacionadas Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo: + Entrar em Scripts em ASPComentário sem rever
|
| Sobre nós | Copyright | Anuncie | Entrar em contato | <criarweb> |