Bereken datum van 1ste maandag van weeknummer

Status
Niet open voor verdere reacties.

Donamd

Gebruiker
Lid geworden
16 feb 2010
Berichten
25
Hallo,

Ik zou de datum moeten kunnen berekenen van de maandag van een welbepaalde week.
vb jaar = 2022 , week = 35 -> maandag is 29.08.2022.
Ik heb op internet al verschillende posts gevonden en uitgeprobeerd maar ik loop telkens tegen een probleem aan.

Onderstaande code geeft inderdaad maandag 02.01.2023.
Maar als ik de parameters wijzig naar jaar = 2022 en week = 52 bekom ik maandag 19.12.2022 en dit zou maandag 26.12.2022 moeten zijn.

Code:
 var year = 2023;
   var weekNum = 1;
   var DAY = 86400000;
   var year = new Date(year.toString()); // toString first so it parses correctly year numbers
   var daysToMonday = (1 - year.getDay());
   var mondayOfFirstWeek = new Date(year.getTime() + daysToMonday * DAY);
   var nthMonday = new Date(mondayOfFirstWeek.getTime() + (7 * (weekNum - 1) * DAY));
   return nthMonday;

Iemand een idee hoe dit opgelost kan worden ?
 
Code:
var year = 2022;
var week = 35;

var firstdayofweek = new Date(year, 0, 4)

firstdayofweek.setDate(firstdayofweek.getDate() + 7 * (week - 1) - firstdayofweek.getDay() + 1);
console.log(firstdayofweek.toISOString().substring(0, 10));
 
Laatst bewerkt:
Hi alphamax, heb je rekening gehouden met
Code:
// 20 aug 2022 00:00:00
var d = new Date("20 aug 2022 00:00:00");

console.log( d );
// resultaat 20 aug 2022

console.log( d.toISOString() );
// resultaat 19 aug 2022

Tijdzone corrigeren
Code:
d.setTime( d.getTime() - d.getTimezoneOffset() * 60 * 1000 );
console.log( d.toISOString() );
// resultaat 20 aug 2022 00:00:00 (na aanpassing tijdzone)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan