Drenthe, geschakelde woning bj. 1981, 107m2, kruipruimte nageisoleerd, origneel dubbelglas, 6x radiator 19kW@70/55/20, beneden 10x heatfan 5 pro, Tado, Remeha Calenta 28C, Quatt (15-02-2024), 10x Sunpower 390W op Zuid, SMA SB 3.6
Je zou je "WeekOfYear" kunnen veranderen in
Dit controleert of het zaterdag is (mydate.getDay() == 6) of dat het vrijdag na 16:00 uur is (mydate.getDay() == 5 && mydate.getHours() >= 16). Is dat zo dan wordt het weeknummer w 1 keer verhoogt (w++).
JavaScript:
1
2
3
4
5
6
7
8
9
| function WeekOfYear(mydate) { var w = mydate.getWeek(1); if(mydate.getDay() == 6 || (mydate.getDay() == 5 && mydate.getHours() >= 16)) { w++; } return(w); } |
Dit controleert of het zaterdag is (mydate.getDay() == 6) of dat het vrijdag na 16:00 uur is (mydate.getDay() == 5 && mydate.getHours() >= 16). Is dat zo dan wordt het weeknummer w 1 keer verhoogt (w++).
Zo gaat het mis eind december.
Het volgende zou moeten werken. De functie getRoosterWeek kijkt of het huidige tijdstip na vrijdag 16:00 ligt. Zoja, dan geeft hij de ISO-week van de maandag erop, anders de ISO-week van die vrijdag zelf
Het volgende zou moeten werken. De functie getRoosterWeek kijkt of het huidige tijdstip na vrijdag 16:00 ligt. Zoja, dan geeft hij de ISO-week van de maandag erop, anders de ISO-week van die vrijdag zelf
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| Date.prototype.getMDay = function() { return (this.getDay() + 6) %7; }; Date.prototype.getISOYear = function() { var thu = new Date(this.getFullYear(), this.getMonth(), this.getDate()+3-this.getMDay()); return thu.getFullYear(); }; Date.prototype.getISOWeek = function() { var onejan = new Date(this.getISOYear(),0,1); var wk = Math.ceil((((this - onejan) / 86400000) + onejan.getMDay()+1)/7); if (onejan.getMDay() > 3) wk--;return wk; }; Date.prototype.getRoosterWeek = function() { var fri1600 = new Date(this.getFullYear(), this.getMonth(), this.getDate()+4-this.getMDay(), 16); if(this.getTime() >= fri1600){ fri1600.setDate(fri1600.getDate() + 3); }; return fri1600.getISOWeek(); }; Date.prototype.getRoosterYear = function() { var fri1600 = new Date(this.getFullYear(), this.getMonth(), this.getDate()+4-this.getMDay(), 16) if(this.getTime() >= fri1600){ fri1600.setDate(fri1600.getDate() + 3); }; return fri1600.getISOYear(); }; var d0 = new Date(2013, 11, 27, 15); var d1 = new Date(2013, 11, 27, 16); document.write(d0.getRoosterWeek() +' _ '+ d0.getRoosterYear() +'<br>'); document.write(d1.getRoosterWeek() +' _ '+ d1.getRoosterYear() +'<br>'); |