Necesito crear una función de JavaScript para los siguientes requisitos. Necesito obtener la lista de fechas de todos los días de la semana. Si conoce el paquete nodeJs, dígamelo. Gracias por su atención.
Example - 2022-01-03 2022-01-04 2022-01-05 2022-01-06 2022-01-07 2022-01-10 2022-01-11 2022-01-12 2022-01-13 2022-01-14 .......... .......... until year-endcomo este patrón (solo de lunes a viernes)
El objeto Date de JavaScript se desborda, por lo que puede usar:
for (i=1;i<366;i++) { if (i%7==1 || i%7==2) continue; const d = new Date(2022, 0, i); document.write(d.toDateString(),'<br>'); }Deberá observar los años bisiestos y volver a calcular qué días son el fin de semana cada año.
function getWeekDaysForYear(year) { const isLeap = year % 4 === 0; const numberOfDays = isLeap ? 366 : 365; let currentDate = new Date(Date.UTC(year, 0, 0, 0, 0, 0, 0)); const weekDays = []; for(let i = 1; i <= numberOfDays; i++) { currentDate = new Date(currentDate.getTime() + 24 * 3600 * 1000); if (currentDate.getDay() === 0 || currentDate.getDay() === 6) { continue; } weekDays.push(currentDate.toISOString().split('T')[0]); } return weekDays; } console.log(getWeekDaysForYear(2022));Esta es una función simple que devuelve todos los días de la semana del año especificado en una matriz.
Algo como esto
const endDate = new Date(2022,1,2); const date = new Date(); //today while (endDate > date) { const weekDay = date.getDay(); if (weekDay != 6 && weekDay != 0) { let year = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(date); let month = new Intl.DateTimeFormat('en', { month: '2-digit' }).format(date); let day = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(date); console.log(`${year}-${month}-${day}`); } date.setDate(date.getDate() + 1); }