Generador de rangos de fechas

JavaScriptJavaScriptBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, exploraremos cómo crear un generador de rangos de fechas utilizando JavaScript. Este generador nos permitirá generar fácilmente todas las fechas dentro de un rango especificado con un paso dado. Al utilizar el constructor Date y la palabra clave yield, podemos iterar eficientemente sobre las fechas y devolverlas al usuario. Este laboratorio será una gran oportunidad para practicar el trabajo con bucles y fechas en JavaScript.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/loops("Loops") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28248{{"Generador de rangos de fechas"}} javascript/data_types -.-> lab-28248{{"Generador de rangos de fechas"}} javascript/arith_ops -.-> lab-28248{{"Generador de rangos de fechas"}} javascript/comp_ops -.-> lab-28248{{"Generador de rangos de fechas"}} javascript/loops -.-> lab-28248{{"Generador de rangos de fechas"}} javascript/spread_rest -.-> lab-28248{{"Generador de rangos de fechas"}} end

Generador de rangos de fechas

Para generar todas las fechas en un rango dado con un paso dado, utiliza el siguiente código en Terminal/SSH y escribe node:

const dateRangeGenerator = function* (start, end, step = 1) {
  let d = start;
  while (d < end) {
    yield new Date(d);
    d.setDate(d.getDate() + step);
  }
};

Esto crea un generador que utiliza un bucle while para iterar desde start hasta end, utilizando el constructor Date para devolver cada fecha en el rango e incrementando en step días utilizando Date.prototype.getDate() y Date.prototype.setDate().

Para utilizar un valor predeterminado de 1 para step, omite el tercer argumento.

Aquí hay un ejemplo de cómo utilizar el dateRangeGenerator:

[...dateRangeGenerator(new Date("2021-06-01"), new Date("2021-06-04"))];
// [ 2021-06-01, 2021-06-02, 2021-06-03 ]

Resumen

¡Felicidades! Has completado el laboratorio de Generador de rangos de fechas. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.