16 junio, 2021

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) {
 //añadimos título
 var MiHoja = workbook.getWorksheet("Hoja1");
  MiHoja.getCell(0, 0).setValues([["PROYECCION"]]);
  //declaramos variables
  var fFecha
  var iniFecha
  var dias: number
  //obtenemos de la hoja la fecha inicial
  iniFecha = MiHoja.getRange("C2").getValues();
  //obtenemos de la hoja los días que añadiremos
  dias = +MiHoja.getRange("D2").getValues();
  // pasamos la fecha obtenido a formato de TS
  fFecha = new Date((iniFecha[0] - (25567 + 3)) * 86400 * 1000);
  var Contador = 1;
  //genermos las fechas en un loop y componemos formato
  for (let i = 1; i <= dias; i++) {
    var nFecha = new Date(Date.parse(fFecha) + Contador * 24 * 60 * 60 * 1000);
    var Mifecha
    var dia = nFecha.getUTCDate();
    var mes = nFecha.getUTCMonth() + 1;
    var año = nFecha.getUTCFullYear();
    Mifecha = (año + "/" + mes + "/" + dia);
    //pasamos datos a la hoja
    MiHoja.getCell(i, 0).setValues(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