6 febrero, 2025

AÑADIR DÍAS A UNA FECHA Y GENERAR RANGO DE FECHAS CON TYPESCRIPT

Hola a todos:

Estos días he estado trabajando un poco con typescript y las fechas. Es un campo complejo que requiere bastante dedicación.

Para plantear un ejemplo que me resultase interesante he tenido en cuenta que sea algo dinámico y donde el lector pueda interactuar: generar un rango de fechas a partir de una fecha y un determinado número de días.

Aquí lo veréis fácilmente:

Indicando una fecha inicial en C2 y los días que quiero generar el rango de fechas en D2, se creará el listado en la columna A.

Y esto ¿cómo lo hacemos?, pues aquí os dejo el código que ha utilizado

  function main(workbook: ExcelScript.Workbook) {
    let fechaNum = workbook.getWorksheet("Hoja1").getRange("C2");
    let dias = workbook.getWorksheet("Hoja1").getRange("D2");
    let miFechaNum = fechaNum.getValue() as number;
    let misDias = dias.getValue() as number;
    let formatFecha = new Date(Math.round((miFechaNum - 25569) * 86400 * 1000)).toLocaleDateString('en-US');
    let MiHoja = workbook.getWorksheet("Hoja1");
    let Contador = 1;
    for (let i = 1; i <= misDias; i++) {
      let nFecha = new Date(Date.parse(formatFecha) + Contador * 24 * 60 * 60 * 1000) ;
      let dia = nFecha.getUTCDate();
      let mes = nFecha.getUTCMonth()+1 ;
      let anio = nFecha.getUTCFullYear();
      let Mifecha = (anio + "/" + mes + "/" + dia);
      MiHoja.getCell(i, 0).setValue(Mifecha);
      Contador = Contador + 1;
    } 
  }

como podéis observar en el código, lo complicado es transformar la información que obtenemos de la hoja para luego poder procesarla en el script correctamente.

Algunas variables están declaradas como «any» dada la dificultad o imposibilidad de hacerlo con otro tipo. No obstante el script funciona correctamente y es muy eficiente en lo que a tiempos se refieres.

Inicialmente quería haber publicado una función, pero me ha resultado imposible.

Seguiré profundizando en las fechas en próximas publicaciones.

Espero que os sea 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