5 diciembre, 2022

VERIFICAR SI EL CONTENIDO DE UNA CELDA ES UNA FECHA CON TYPESCRIPT

Hola a todos!.

Hoy he estado trabajando con Typescript y la forma de validar si el contenido de una celda es una fecha. La idea era crear una función que sea capaz de realizar la validación.

El problema es que no es tan sencillo como seleccionar una fecha en una celda y comprobarlo con una instrucción. La clave es ser capaces de transformar el dato que estamos seleccionando en algo que typescript pueda detectar como una fecha. Si lo hacemos directamente el resultado será error o falso en todos los casos.

Aunque desconozco si existe una forma más efectiva de hacerlo (pero supongo que sí), he optado por utilizar las dos líneas de código que suelo usar para leer las fechas en la hoja de Excel.

  var ini = new Date(Math.round((mifecha - 25569) * 86400 * 1000)).toLocaleDateString("en-US");
  var nIni = new Date(Date.parse(ini) + 1 * 24 * 60 * 60 * 1000);
  

Primero obtengo la fecha con formato mes/día/año expresada en ingles de Estados Unidos y que es un objeto «string» y por lo tanto no es una fecha y en un segundo paso obtenemos el literal de la fecha contenido en la variable nIni (que ya es un objeto date) y ya podemos comprobar si se trata de una fecha o no.

Esta sería la función

/**
 * @customfunction
 */
function isDate(mifecha) {
  var ini = new Date(Math.round((mifecha - 25569) * 86400 * 1000)).toLocaleDateString("en-US");
  var nIni = new Date(Date.parse(ini) + 1 * 24 * 60 * 60 * 1000);
  var isDate
  if (!!nIni.getDate()) {
    isDate = 'es una fecha'
  } else {
    isDate = 'no es una fecha'
  }
  return (isDate)
}

y este el resultado:

Y esto es todo, espero que se de utilidad!!

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

Comparte este post

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies