Avatar billede bgo Nybegynder
01. oktober 2009 - 12:50 Der er 1 løsning

Ugenummer når 1/1 er i uge 52/53 og 31/12 er i uge 1

Hvordan kan jeg rette følgende til at tage højde for at de sidste dage i et år kan være i uge 1 (som eks. 29/12-2008 - 31/12-2008) og de første dage er i uge 52 eller 53 (som eks. 1/1-2010 - 3/1-2010)?

Især den sidste kan medføre forskydninger for hele reste af året

Date.prototype.getWeek = function() {
var onejan = new Date(this.getFullYear(),0,1);
return Math.ceil((((this - onejan) / 86400000) + onejan.getDay()-1)/7);
}
Avatar billede bgo Nybegynder
01. oktober 2009 - 14:46 #1
Ok, jeg fandt selv ud af det:

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;}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester