Manual de ASP

 
 
 

Mapa Web

 
borde   borde
Portada Lista de Códigos ASP Validar una fecha con ASP

 

Validar una fecha con ASP

Función para comprobar si una fecha es correcta, es decir, si es un día mes y año son correctos, en páginas programadas con ASP.

Veamos una función creada con Active Server Pages para hacer una comprobación de fechas. La función recibe un día, un mes y un año y comprueba que estos sean numéricos y que la fecha creada entre todos es correcta y posible en el calendario.

La función recibe los datos de día mes y año como string, tal como podrían llegarnos a través de un formulario o como parámetro en una URL. No obstante, dado que ASP es un lenguaje poco tipado, aunque pasemos valores numéricos a la función seguirá dando resultados correctos.

Como resultado la función devolverá un valor verdadero o falso, dependiendo si la fecha es correcta o incorrecta.

El código de la función es el siguiente:

'valido una fecha
'espero recibir tres strings con el dia, el mes y el año

function validarFecha(dia,mes,ano)

  'elimino posibles espacios a los lados de los números que recibo por parámetro

  dia = trim(dia)
  mes = trim(mes)
  ano = trim(ano)

  'compruebo nº de caracteres que recibo en cada parámetro son los permitidos
  'El año puede tener hasta 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
    validarFecha = false
    exit function
  end if

  'compruebo que los caracteres de los parámetros son números

  if (not isNumeric(dia)) or (not isNumeric(mes)) or (not isNumeric(ano)) then
    validarFecha = false
    exit function
  end if

  'El mes no puede ser mayor que 12 ni menor que 1

  mes = cint(mes)
  if mes > 12 or mes < 1 then
    validarFecha = false
    exit function
  end if
  dia = cint(dia)

  'El día no puede ser menor que 1

  if dia < 1 then
    validarFecha = false
    exit function
  end if

  'El dia, dependiendo del mes que sea, puede tener unos u otros valores

  if mes=1 or mes=3 or mes=5 or mes=7 or mes=8 or mes=10 or mes=12 then

    'en estos meses puede haber 31 dias

    if dia > 31 then
      validarFecha = false
      exit function
    end if
  elseif mes=2 then

    'en febrero tenemos que ver si es año bisiesto
    'consigo el numero de año de 4 cifras.
    'si nos dan un valor de 2 cifras < 31 se refiere a 2000 más ese valor

    if ano < 31 then
      ano = ano + 2000

    'si nos dan un valor de 2 cifras > 31 se refiere a 1900 más ese valor

    elseif ano < 100 then
      ano = ano + 1900
    end if

    'calculo si el año es bisiesto
    'si es divisible por cuatro y (no divisible por 100 o divisible por 400)

    if ((ano mod 4)=0) and ((ano mod 100)<>0 or (ano mod 400)=0) then

      'es bisiesto

      if dia > 29 then
        validarFecha = false
        exit function
      end if
    else

      'NO es bisiesto

      if dia > 28 then
        validarFecha = false
        exit function
      end if
    end if
  else

    'en todos los demás meses llegan a tener 30 dias

    if dia > 30 then
      validarFecha = false
      exit function
    end if
  end if

  'si estoy aquí es que todas las comprobaciones han sido positivas

  validarFecha = true
end function


El código de la función está comentado para que se pueda entender más fácilmente. Básicamente lo que hace es realizar una serie de comprobaciones, una tras otra. Si alguna de las comprobaciones hace que la fecha sea incorrecta, se devuelve el valor false y se sale de la función. Si se llega al final de la función y ninguna de las comprobaciones falló, se devuelve true, pues la fecha es correcta.

A la hora de calcular si un día es válido, tenemos que saber los días que tiene un mes. Hay que prestar especial atención al mes de febrero, para saber si es bisiesto. Para saber si un año es bisiesto existe la regla siguiente:

  • Son bisiestos todos los años divisibles por 4, excluyendo los que sean divisibles por 100, pero no los que sean divisibles por 400.

Miguel Angel Alvarez
http://www.desarrolloweb.com/articulos/2092.php?manual=11

 

 
Portada
Capítulos del Manual de ASP
Crear una Página ASP
Agregar secuencias de comandos del servidor
Combinar HTML y comandos de secuencias de comandos
Utilizar directivas ASP
Espacio en Blanco en las secuencias de comandos
Introducción a las variables
Alcance de las variables
Alcance de sesión y Alcance de aplicación
Utilizar Constantes
Interactuar con secuencias de comandos del cliente
Escribir y Definir Procedimientos
Llamar a Procedimientos
Procesar los datos proporcionados por el usuario
La colección QueryString y la colección Form
Validar los datos de los formularios
Origen de Datos
Utilizar el objeto recordset para manipular resultados
Combinar formularios y el acceso a la base de datos
Transferencia entre archivos ASP
Practicar en línea
Lista de prácticas en línea
FAQ
Preguntas frecuentes
Códigos ASP
Lista de Códigos ASP
Foros
Foros ASP
Otros Manuales
Manuales de otros lenguajes
 
   
 
 
Alojamiento web en Hostalia