javascript获取某月最后一天(公历)

来源:互联网 发布:巨人网络手游下载 编辑:程序博客网 时间:2024/05/17 05:47

【算法思想】

  获取下个月第一天(new Date(year, month + 1, 1))再倒退一天即可。

【优点】

  1. 不需要再计算某月含有多少天,虽然可以很简单解决吗,用数组[31,28/29,31,30,31,30,31,31,30,31,30,31];

  2. 不需要计算2月是否是闰月。

【代码】

【测试代码】

【测试结果】

JavaScript 获取某月最后一天(Date)测试结果

一般测试 :

2010/-1 : 2009年12月31日 星期四 0:00:00
2010/0 : 2010年1月31日 星期日 0:00:00
2010/1 : 2010年2月28日 星期日 0:00:00
2010/2 : 2010年3月31日 星期三 0:00:00
2010/3 : 2010年4月30日 星期五 0:00:00
2010/4 : 2010年5月31日 星期一 0:00:00
2010/5 : 2010年6月30日 星期三 0:00:00
2010/6 : 2010年7月31日 星期六 0:00:00
2010/7 : 2010年8月31日 星期二 0:00:00
2010/8 : 2010年9月30日 星期四 0:00:00
2010/9 : 2010年10月31日 星期日 0:00:00
2010/10 : 2010年11月30日 星期二 0:00:00
2010/11 : 2010年12月31日 星期五 0:00:00
2010/12 : 2011年1月31日 星期一 0:00:00
2010/13 : 2011年2月28日 星期一 0:00:00

1月份测试 :

2008/0 : 2008年1月31日 星期四 0:00:00
2009/0 : 2009年1月31日 星期六 0:00:00
2010/0 : 2010年1月31日 星期日 0:00:00
2011/0 : 2011年1月31日 星期一 0:00:00
2012/0 : 2012年1月31日 星期二 0:00:00
2013/0 : 2013年1月31日 星期四 0:00:00
2014/0 : 2014年1月31日 星期五 0:00:00

2月份测试 :

2008/1 : 2008年2月29日 星期五 0:00:00
2009/1 : 2009年2月28日 星期六 0:00:00
2010/1 : 2010年2月28日 星期日 0:00:00
2011/1 : 2011年2月28日 星期一 0:00:00
2012/1 : 2012年2月29日 星期三 0:00:00
2013/1 : 2013年2月28日 星期四 0:00:00
2014/1 : 2014年2月28日 星期五 0:00:00

12月份测试 :

2008/11 : 2008年12月31日 星期三 0:00:00
2009/11 : 2009年12月31日 星期四 0:00:00
2010/11 : 2010年12月31日 星期五 0:00:00
2011/11 : 2011年12月31日 星期六 0:00:00
2012/11 : 2012年12月31日 星期一 0:00:00
2013/11 : 2013年12月31日 星期二 0:00:00
2014/11 : 2014年12月31日 星期三 0:00:00

BT月份测试(month <= 0) :

2010/0 : 2010年1月31日 星期日 0:00:00
2010/-1 : 2009年12月31日 星期四 0:00:00
2010/-2 : 2009年11月30日 星期一 0:00:00
2010/-3 : 2009年10月31日 星期六 0:00:00
2010/-4 : 2009年9月30日 星期三 0:00:00
2010/-5 : 2009年8月31日 星期一 0:00:00
2010/-6 : 2009年7月31日 星期五 0:00:00
2010/-7 : 2009年6月30日 星期二 0:00:00
2010/-8 : 2009年5月31日 星期日 0:00:00

BT月份测试(month >= 11) :

2010/11 : 2010年12月31日 星期五 0:00:00
2010/12 : 2011年1月31日 星期一 0:00:00
2010/13 : 2011年2月28日 星期一 0:00:00
2010/14 : 2011年3月31日 星期四 0:00:00
2010/15 : 2011年4月30日 星期六 0:00:00
2010/16 : 2011年5月31日 星期二 0:00:00
2010/17 : 2011年6月30日 星期四 0:00:00
2010/18 : 2011年7月31日 星期日 0:00:00
2010/19 : 2011年8月31日 星期三 0:00:00

BT年份测试(year = 0) :

0/1 : 1900年2月28日 星期三 0:00:00
0/0 : 1900年1月31日 星期三 0:00:00
0/-1 : 1899年12月31日 星期日 0:00:00
0/-2 : 1899年11月30日 星期四 0:00:00
0/-3 : 1899年10月31日 星期二 0:00:00

BT年份测试(year <= 1) :

1/0 : 1901年1月31日 星期四 0:00:00
0/0 : 1900年1月31日 星期三 0:00:00
-1/0 : Sun Jan 31 00:00:00 UTC+0800 2 B.C.
-2/0 : Sat Jan 31 00:00:00 UTC+0800 3 B.C.
-3/0 : Fri Jan 31 00:00:00 UTC+0800 4 B.C.
-4/0 : Wed Jan 31 00:00:00 UTC+0800 5 B.C.
-5/0 : Tue Jan 31 00:00:00 UTC+0800 6 B.C.

BT年份测试(year > 9999) :

9999/0 : 9999年1月31日 星期日 0:00:00
10000/0 : Mon Jan 31 00:00:00 UTC+0800 10000
100001/0 : Wed Jan 31 00:00:00 UTC+0800 100001
100002/0 : Thu Jan 31 00:00:00 UTC+0800 100002
100003/0 : Fri Jan 31 00:00:00 UTC+0800 100003

原创粉丝点击