From: Tim Wood Date: Wed, 7 Nov 2012 22:41:58 +0000 (-0800) Subject: Passing tests for en-us week numbers X-Git-Tag: 2.0.0~35^2~46 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=79ab4bc6311fd1a8b228c88f32a19ca097af7bcb;p=thirdparty%2Fmoment.git Passing tests for en-us week numbers --- diff --git a/moment.js b/moment.js index 1eaa8a42a..6d83cadb5 100644 --- a/moment.js +++ b/moment.js @@ -458,6 +458,14 @@ postformat : function (string) { return string; + }, + + week : function (mom) { + return weekOfYear(mom, this._week.dow, this._week.doy); + }, + _week : { + dow : 0, + doy : 6 } }; @@ -863,21 +871,19 @@ // of this day of the week // (eg. ISO weeks use thursday (4)) function weekOfYear(mom, firstDayOfWeek, firstDayOfWeekOfYear) { - var daysToDayOfWeek = firstDayOfWeekOfYear - mom.day(); + var end = firstDayOfWeekOfYear - firstDayOfWeek, + daysToDayOfWeek = firstDayOfWeekOfYear - mom.day(); + - if (daysToDayOfWeek > 3) { + if (daysToDayOfWeek > end) { daysToDayOfWeek -= 7; } - if (daysToDayOfWeek < -3) { + if (daysToDayOfWeek < end - 7) { daysToDayOfWeek += 7; } - if (moment(mom).startOf('year').day() > firstDayOfWeekOfYear) { - daysToDayOfWeek -= 1; - } - - return ~~(moment(mom).add('d', daysToDayOfWeek).dayOfYear() / 7) + 1; + return Math.ceil(moment(mom).add('d', daysToDayOfWeek).dayOfYear() / 7); } @@ -1206,6 +1212,10 @@ return weekOfYear(this, 1, 4); }, + week : function () { + return this.lang().week(this); + }, + // If passed a language key, it will set the language for this // instance. Otherwise, it will return the language configuration // variables for this instance.