 /** 
  * Get the ISO week date week number 
  */  
 Date.prototype.getWeek = function () {  
     // Create a copy of this date object  
     var target  = new Date(this.valueOf());  
   
     // ISO week date weeks start on monday  
     // so correct the day number  
     var dayNr   = (this.getDay() + 6) % 7;  
   
     // Set the target to the thursday of this week so the  
     // target date is in the right year  
     target.setDate(target.getDate() - dayNr + 3);  
   
     // ISO 8601 states that week 1 is the week  
     // with january 4th in it  
     var jan4    = new Date(target.getFullYear(), 0, 4);  
   
     // Number of days between target date and january 4th  
     var dayDiff = (target - jan4) / 86400000;    
   
     // Calculate week number: Week 1 (january 4th) plus the    
     // number of weeks between target date and january 4th    
     var weekNr = 1 + Math.ceil(dayDiff / 7);    
  
     return weekNr-1;    
 }
