]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
Passing tests for en-us week numbers
authorTim Wood <washwithcare@gmail.com>
Wed, 7 Nov 2012 22:41:58 +0000 (14:41 -0800)
committerTim Wood <washwithcare@gmail.com>
Wed, 7 Nov 2012 22:41:58 +0000 (14:41 -0800)
moment.js

index 1eaa8a42ad867f65440b4d6f05051b9d8da79e82..6d83cadb5b66fbc543d4ff12f37678724284ef9b 100644 (file)
--- a/moment.js
+++ b/moment.js
 
         postformat : function (string) {
             return string;
+        },
+
+        week : function (mom) {
+            return weekOfYear(mom, this._week.dow, this._week.doy);
+        },
+        _week : {
+            dow : 0,
+            doy : 6
         }
     };
 
     //                      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);
     }
 
 
             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.