Javascriptで年初からの日数と週数を数えるメソッドをDateクラスに追加する。週数の方は、日曜を起点とした週数を数える(Rubyの%Uに相当)。
Date.prototype.getDayOfYear = function() { var onejan = new Date(this.getFullYear(), 0, 1); return Math.ceil((this - onejan) / 86400000); }; Date.prototype.getWeekOfYear = function() { var onejan = new Date(this.getFullYear(), 0, 1); var offset = onejan.getDay() - 1; var weeks = Math.floor((this.getDayOfYear() + offset) / 7); return (onejan.getDay() == 0) ? weeks + 1 : weeks; };使い方は:
var time = Date.now(); var today = new Date(time); // Fri Mar 02 2012 16:49:11 GMT+0900 (JST) today.getDayOfYear(); // => 62 today.getWeekOfYear(); // => 9