js 简单日历
2018-12-24 09:09:18来源:博客园 阅读 ()
源地址:https://jingyan.baidu.com/article/546ae185fa4f721149f28cbf.htm
文件:index.htm
<!DOCTYPE html>
<head>
<meta charset="utf8">
<title>日历例子</title>
<script src="calendar.js"></script>
</head>
<body>
<div id="main"><!-- 日历 --></div>
<script>
'use strict';
{
let rili = new Calendar({
container: 'main',
});
rili.show(11); // 12 月份
}
</script>
</body>
</html>
文件:calendar.js
'use strict';
class Calendar {
/**
* 构造函数
* @param {string} containerId 容器Id
* @param {number} year 年份
*/
constructor({ container, year = new Date().getFullYear() }) {
this.year = year;
this.container = document.getElementById(container);
}
/**
* 日历数据
* @param {number} month 月份
* @returns {array} 6行7列 日期 0~6 表示:星期天 ~ 星期六
*/
data(month) {
let week = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'], arr = [];
let date = new Date(this.year, month), days = this.getDays(month);
for (let x = 0, day = 1; x < 6; x++) {
arr[x] = new Array(7).fill(null);
for (let y = x ? 0 : date.getDay(); y < 7 && day <= days; y++ , day++) {
arr[x][y] = day;
}
}
arr.unshift(week)
return arr;
}
/**
* 显示日历
* @param {number} month 月份
*/
show(month) {
let data = this.data(month);
let table = document.createElement('table'), tr, td, text;
table.border = 1;
for (let x = 0; x < data.length; x++) {
tr = document.createElement('tr');
table.appendChild(tr);
for (let y = 0; y < data[x].length; y++) {
td = document.createElement('td');
td.height = 24;
text = document.createTextNode(data[x][y] || " "); // 创建文本节点
td.appendChild(text);
tr.appendChild(td);
}
}
this.container.appendChild(table);
}
/**
* 当月天数
* @param {number} num 月份
* @returns {number} 天数
*/
getDays(num) {
const month = [31, this.isLeapYear() ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
return month[num];
}
/**
* 是否润年
* @returns {bool}
*/
isLeapYear() {
let year = this.year;
return ((year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0)) ? true : false;
}
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:函数语法
- JS简单去除数组中重复项的方法 2020-03-16
- JS判断浏览器是否安装flash插件的简单方法 2020-03-12
- JavaScript简单下拉菜单特效 2020-02-22
- Js操作DOM元素及获取浏览器高宽的简单方法 2019-12-31
- JS简单随机数生成方法 2019-12-29
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash