Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

230
Views
Cómo manipular fechas para fechas de pago trimestrales usando javascript

¿Cómo puedo hacer esta secuencia de fecha con trimestral. por ej. la entrada es `"2022-03-14" la entrada es dinámica depende de la entrada del usuario... Estoy tratando de agregar + 10 días pero no funciona

La salida que quiero

 [ "2022-03-24", "2022-04-04", "2022-04-14", "2022-04-24", "2022-05-04", "2022-05-14", "2022-05-24", "2022-06-04", "2022-06-14", "2022-06-24", ]

Mi salida de código que está desgastada

 [ "2022-03-24", "2022-04-14", "2022-04-24", "2022-05-14", "2022-05-24", "2022-06-14", "2022-06-24", "2022-07-14", "2022-07-24", ] 

 function createSchedule(date, count){ date = new Date(date); let day = date.getDate();// Get day in given date let k = 0; let days = k? [day - 10, day , day + 10] : [day, day + 10, day- 10]; let result = []; if(day > 10){ k = +0 }else{ if(day > 20 ){ k = +1 }else{ k= +2 } } for(let i = 0; i < count; i++){ k= 1-k; date.setDate(days[k]); // When date overflows into next month, take last day of month if (date.getDate() !== days[k]) date.setDate(0); if (!k) date.setMonth(date.getMonth() + 1); result.push(date.toLocaleDateString("en-SE")); } return result } var dateRelease = new Date("03-14-2022"); var result = createSchedule(dateRelease, 9); console.log(result)

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Algunos problemas en su intento:

  • Después de let k = 0 , ¿el operador condicional en k? siempre evaluará la primera expresión después de ? , que es [day - 10, day , day + 10] .
  • Esa matriz podría tener fechas mayores que 31 ( day + 10 )
  • Esa otra matriz [day, day + 10, day- 10] no está ordenada, pero debería estarlo.
  • Las constantes +0 y +1 y +2 están bien, pero parece raro que uses el signo más unario aquí. Podría ser simplemente 0, 1 y 2.
  • La asignación k = 1 - k asume que solo tiene dos entradas en su matriz de days , pero tiene tres, así que use aritmética modular: k = (k + 1) % 3

Aquí hay una corrección:

 function createSchedule(date, count) { date = new Date(date); let day = date.getDate(); let firstDay = 1 + (day - 1) % 10; let days = [firstDay, firstDay + 10, firstDay + 20]; let k = days.indexOf(day); let result = []; for (let i = 0; i < count; i++) { k = (k + 1) % 3; date.setDate(days[k]); // When date overflows into next month, take last day of month if (date.getDate() !== days[k]) date.setDate(0); if (!k) date.setMonth(date.getMonth() + 1); result.push(date.toLocaleDateString("en-SE")); } return result; } var dateRelease = new Date("2022-03-14"); var result = createSchedule(dateRelease, 25); console.log(result);

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!