1.首先取得处理月的总天数 JS不提供此参数,我们需要计算。考虑到闰年问题会影响二月份的天数,我们先编写一个判断闰年的自编函数:
//判断是否为闰年
function is_leap(year) {
//闰年的条件是符合下面二者之一:
//(1)年份能被4整除,但不能被100整除;
//(2)年份能被400整除。
if((year%4==0 && year%100!=0)||(year%400==0)){
return 1;
}
return 0;
}
2.十二个月内的月份总天数的数组:
days_of_month = new Array(31, 28+is_leap(fullYear), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
3.计算处理月第一天是星期几
date=new Date(2008, 3, 1); week=date.getDay();
4.解决 日期显示 行数问题
rows=Math.ceil((days_of_month[month] + week) / 7);
5. 总的来说用到的参数
//判断是否为闰年
function is_leap(year) {
//闰年的条件是符合下面二者之一:
//(1)年份能被4整除,但不能被100整除;
//(2)年份能被400整除。
if((year%4==0 && year%100!=0)||(year%400==0)){
return 1;
}
return 0;
}
//var date = new Date(2013, 1, 4); //特定Date资讯
var date = new Date(); //当前Date资讯
var fullYear = date.getFullYear(); //获取年份
var month = date.getMonth(); //获取月份,返回值是0(一月)到11(十二月)之间的一个整数。
var date_of_month = date.getDate(); //获取日期,返回值是1~31之间的一个整数
var first_date = new Date(fullYear, month, 1); //获取当前月第一天Date资讯
//返回date对象星期中的一天,此值为0(周日)-6(周六)之间的一个整数
var week = first_date.getDay(); //获取当前月第一天是星期几
var days_of_month = new Array(31, 28+is_leap(fullYear), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); //各月份的总天数
var rows = Math.ceil((days_of_month[month] + week) / 7); //表格所需要行数
转载自:https://www.cnblogs.com/linjiqin/p/3564883.html 感谢!
组件化请参看:https://www.jianshu.com/p/0831d6035e7b