]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
Added moment.fn.daysInMonth
authorTim Wood <washwithcare@gmail.com>
Tue, 28 Feb 2012 17:43:19 +0000 (09:43 -0800)
committerTim Wood <washwithcare@gmail.com>
Tue, 28 Feb 2012 17:43:19 +0000 (09:43 -0800)
See #180

moment.js
test/moment/days_in_month.js [new file with mode: 0644]

index b2b893c5f630afede3d97e4979d3cc7f3c4ba92a..8ce2705eeb8c793527de1a208e43e50a54396a82 100644 (file)
--- a/moment.js
+++ b/moment.js
 
         zone : function () {
             return this._d.getTimezoneOffset();
+        },
+
+        daysInMonth : function () {
+            return this.clone().month(this.month() + 1).date(0).date();
         }
     };
 
diff --git a/test/moment/days_in_month.js b/test/moment/days_in_month.js
new file mode 100644 (file)
index 0000000..e591b1c
--- /dev/null
@@ -0,0 +1,23 @@
+var moment = require("../../moment");
+
+exports.days_in_month = {
+    "days in month" : function(test) {
+        test.expect(12);
+        var months = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
+        for (var i = 0; i < 12; i++) {
+            test.equal(moment([2011, i]).daysInMonth(),
+                       months[i],
+                       moment([2011, i]).format('L') + "should have " + months[i] + " days.")
+        }
+        test.done();
+    },
+
+    "days in month leap years" : function(test) {
+        test.expect(4);
+        test.equal(moment([2010, 1]).daysInMonth(), 28, "Feb 2010 should have 29 days");
+        test.equal(moment([2100, 1]).daysInMonth(), 28, "Feb 2100 should have 29 days");
+        test.equal(moment([2008, 1]).daysInMonth(), 29, "Feb 2008 should have 29 days");
+        test.equal(moment([2000, 1]).daysInMonth(), 29, "Feb 2000 should have 29 days");
+        test.done();
+    }
+};