得到某月有几天

获取某月有几天,经典算法是按月份和是否闰年进行判断。

对于 iOS,可以直接用 NSCalendar:

1
2
3
NSDate *today = [NSDate date];
NSCalendar *c = [NSCalendar currentCalendar];
NSRange days = [c rangeOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate:today];

对于 js,也有一个巧妙的方法。js 里 Date 的构造方法 new Date("yyyy/MM/dd") ,当你传入的是 “yyyy/MM/0”,也就是日为 0 的话,得到的会是 yyyy/MM 月的上一个月的最后一天,这样就能通过它来得到上个月有几天了。

1
2
3
4
5
function getDaysInMonth(year,month){
month = parseInt(month,10) + 1;
var tempDate = new Date(year + "/" + month + "/0");
return tempDate.getDay();
}