话不多说来个小漩涡·····,咳咳  跑题了啊,收!!!

前段时间用到了搞出来了,所以就和大家分享一下,希望能够给各位大哥大姐们在开发过程中提供帮助,得 废话又多了,上成果。

                                                                                                                                         

整个日历结构还是比较简单的,注释啥的都给大哥们整好了,都是手写的静态数据请放心食用,效果图呈上!

万年历、日历——拿来即用(简单易上手,操作方便)-编程之家

HTML代码:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>万年历查询</title><link type="text/css" rel="stylesheet" href="./css/day.css" /></head><body><div class="mod-calendar"><div class="box"><div class="selector"><span><a class="prev prev-year" href="javascript:;">&lt;</a><select class="year"><script type="text/javascript">for (i = 1900; i < 2101; i++) {document.write('<option value="' + i + '">' + i + '年</option>');}</script></select><a class="next next-year" href="javascript:;">&gt;</a></span><span><a class="prev prev-month" href="javascript:;">&lt;</a><select class="month"><script type="text/javascript">for (i = 1; i < 13; i++) {document.write('<option value="' + i + '">' + i + '月</option>');}</script></select><a class="next next-month" href="javascript:;">&gt;</a></span><span><select class="holiday"><option value="">假日安排</option></select></span><a class="goback" href="javascript:;">今天</a></div><div class="table"></div></div></div><script type="text/javascript" src="./js/day.js"></script>
</body></html>

CSS代码:

* {margin: 0;padding: 0;
}.mod-calendar {position: relative;width: 300px;margin: 0 auto 30px;background: #57abff;overflow: hidden;*zoom: 1;
}.mod-calendar a:hover {text-decoration: none;
}.mod-calendar .box {border: 1px solid #57abff;background: #fff;_margin-right: 0;_float: left;_width: 404px;
}.mod-calendar .selector {width: max-content;vertical-align: middle;margin-left: -1px;overflow: hidden;
}.mod-calendar .selector a {float: left;position: relative;height: 24px;color: #555;padding: 0 3px;font-size: 12px;border: 1px solid #ebebeb;background: #fafafa;line-height: 20px;vertical-align: middle;text-decoration: none;_display: inline;_height: 20px;_line-height: 20px;
}.mod-calendar .selector a:hover {border-color: #57abff;color: #57abff;
}.mod-calendar .goback {_white-space: nowrap;
}.mod-calendar .prev {left: 1px;
}.mod-calendar .next {right: 1px;
}.mod-calendar select {float: left;min-width: 50px;height: 26px;border: 1px solid #ebebeb;background: none;line-height: 24px;vertical-align: middle;font-size: 12px;color: #333;outline: none;_width: 80px;
}.mod-calendar select.year,
.mod-calendar select.month {_width: 70px;
}.mod-calendar button {height: 26px;border: 1px solid #ebebeb;line-height: 24px;background: #fafafa;
}.mod-calendar table {width: 100%;table-layout: fixed;color: #666;border-collapse: collapse;border-spacing: 0;
}.mod-calendar tr {border-top: 1px dotted #ebebeb;
}.mod-calendar th,
.mod-calendar td {text-align: center;
}.mod-calendar th {font-size: 14px;color: #000;line-height: 30px;font-weight: normal;
}.mod-calendar td {position: relative;line-height: 22px;
}.mod-calendar tbody a {display: block;width: 40px;padding: 2px 1px;border-right: 1px solid #fff;cursor: pointer;text-decoration: none;
}.mod-calendar tbody a.active,
.mod-calendar tbody a:hover {padding: 1px 0;border: 1px solid #fc0;z-index: 100;
}.mod-calendar tbody span {display: block;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;
}.mod-calendar tbody i {position: absolute;left: 2px;top: 0;line-height: 20px;font-style: normal;font-size: 12px;
}.mod-calendar .s1 {font-size: 12px;color: #212121;
}.mod-calendar .s2 {font-size: 12px;color: #757575;
}.mod-calendar .holiday a {background: #f1f9f1;
}.mod-calendar .holiday i {color: #4bae4f;
}.mod-calendar .work a {background: #fef0ef;
}.mod-calendar .work i {color: #f44336;
}.mod-calendar .today a {background: #fc0;
}.mod-calendar .today span {color: #fff;
}.mod-calendar .disabled a {background: #fff;
}.mod-calendar .disabled .s1,
.mod-calendar .disabled .s2 {color: #bdbdbd;
}

JS代码:

//跨浏览器DOM对象
var DOMUtil = {getStyle: function (node, attr) {return node.currentStyle ? node.currentStyle[attr] : getComputedStyle(node, 0)[attr];},getScroll: function () {           //获取滚动条的滚动距离var scrollPos = {};if (window.pageYOffset || window.pageXOffset) {scrollPos['top'] = window.pageYOffset;scrollPos['left'] = window.pageXOffset;} else if (document.compatMode && document.compatMode != 'BackCompat') {scrollPos['top'] = document.documentElement.scrollTop;scrollPos['left'] = document.documentElement.scrollLeft;} else if (document.body) {scrollPos['top'] = document.body.scrollTop;scrollPos['left'] = document.body.scrollLeft;}return scrollPos;},getClient: function () {           //获取浏览器的可视区域位置var l, t, w, h;l = document.documentElement.scrollLeft || document.body.scrollLeft;t = document.documentElement.scrollTop || document.body.scrollTop;w = document.documentElement.clientWidth;h = document.documentElement.clientHeight;return { 'left': l, 'top': t, 'width': w, 'height': h };},getNextElement: function (node) {  //获取下一个节点if (node.nextElementSibling) {return node.nextElementSibling;} else {var NextElementNode = node.nextSibling;while (NextElementNode.nodeValue != null) {NextElementNode = NextElementNode.nextSibling}return NextElementNode;}},getElementById: function (idName) {return document.getElementById(idName);},getElementsByClassName: function (className, context, tagName) { //根据class获取节点if (typeof context == 'string') {tagName = context;context = document;} else {context = context || document;tagName = tagName || '*';}if (context.getElementsByClassName) {return context.getElementsByClassName(className);}var nodes = context.getElementsByTagName(tagName);var results = [];for (var i = 0; i < nodes.length; i++) {var node = nodes[i];var classNames = node.className.split(' ');for (var j = 0; j < classNames.length; j++) {if (classNames[j] == className) {results.push(node);break;}}}return results;},addClass: function (node, classname) {          //对节点增加classif (!new RegExp("(^|\s+)" + classname).test(node.className)) {node.className = (node.className + " " + classname).replace(/^\s+|\s+$/g, '');}},removeClass: function (node, classname) {       //对节点删除classnode.className = (node.className.replace(classname, "")).replace(/^\s+|\s+$/g, '');}
};
var getData = (function () {//公历农历转换var calendar = {lunarInfo: [0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2,0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977,0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970,0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950,0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557,0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0,0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0,0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6,0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570,0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x055c0, 0x0ab60, 0x096d5, 0x092e0,0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5,0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930,0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530,0x05aa0, 0x076a3, 0x096d0, 0x04bd7, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45,0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0,0x14b63, 0x09370, 0x049f8, 0x04970, 0x064b0, 0x168a6, 0x0ea50, 0x06b20, 0x1a6c4, 0x0aae0,0x0a2e0, 0x0d2e3, 0x0c960, 0x0d557, 0x0d4a0, 0x0da50, 0x05d55, 0x056a0, 0x0a6d0, 0x055d4,0x052d0, 0x0a9b8, 0x0a950, 0x0b4a0, 0x0b6a6, 0x0ad50, 0x055a0, 0x0aba4, 0x0a5b0, 0x052b0,0x0b273, 0x06930, 0x07337, 0x06aa0, 0x0ad50, 0x14b55, 0x04b60, 0x0a570, 0x054e4, 0x0d160,0x0e968, 0x0d520, 0x0daa0, 0x16aa6, 0x056d0, 0x04ae0, 0x0a9d4, 0x0a2d0, 0x0d150, 0x0f252,0x0d520],solarMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],Gan: ["\u7532", "\u4e59", "\u4e19", "\u4e01", "\u620a", "\u5df1", "\u5e9a", "\u8f9b", "\u58ec", "\u7678"],Zhi: ["\u5b50", "\u4e11", "\u5bc5", "\u536f", "\u8fb0", "\u5df3", "\u5348", "\u672a", "\u7533", "\u9149", "\u620c", "\u4ea5"],Animals: ["\u9f20", "\u725b", "\u864e", "\u5154", "\u9f99", "\u86c7", "\u9a6c", "\u7f8a", "\u7334", "\u9e21", "\u72d7", "\u732a"],solarTerm: ["\u5c0f\u5bd2", "\u5927\u5bd2", "\u7acb\u6625", "\u96e8\u6c34", "\u60ca\u86f0", "\u6625\u5206", "\u6e05\u660e", "\u8c37\u96e8", "\u7acb\u590f", "\u5c0f\u6ee1", "\u8292\u79cd", "\u590f\u81f3", "\u5c0f\u6691", "\u5927\u6691", "\u7acb\u79cb", "\u5904\u6691", "\u767d\u9732", "\u79cb\u5206", "\u5bd2\u9732", "\u971c\u964d", "\u7acb\u51ac", "\u5c0f\u96ea", "\u5927\u96ea", "\u51ac\u81f3"],sTermInfo: ['9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f','97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e','97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa','97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f','b027097bd097c36b0b6fc9274c91aa', '9778397bd19801ec9210c965cc920e', '97b6b97bd19801ec95f8c965cc920f','97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd197c36c9210c9274c91aa','97b6b97bd19801ec95f8c965cc920e', '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2','9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec95f8c965cc920e', '97bcf97c3598082c95f8e1cfcc920f','97bd097bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e','97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa','97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722','9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f','97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e','97bcf97c359801ec95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa','97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd097bd07f595b0b6fc920fb0722','9778397bd097c36b0b6fc9210c8dc2', '9778397bd19801ec9210c9274c920e', '97b6b97bd19801ec95f8c965cc920f','97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e','97b6b97bd19801ec95f8c965cc920f', '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2','9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bd07f1487f595b0b0bc920fb0722','7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e','97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa','97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722','9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f531b0b0bb0b6fb0722','7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e','97bcf7f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa','97b6b97bd19801ec9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722','9778397bd097c36b0b6fc9210c91aa', '97b6b97bd197c36c9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722','7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e','97b6b7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2','9778397bd097c36b0b70c9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722','7f0e397bd097c35b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721','7f0e27f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa','97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722','9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722','7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721','7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9274c91aa','97b6b7f0e47f531b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722','9778397bd097c36b0b6fc9210c91aa', '97b6b7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722','7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '977837f0e37f149b0723b0787b0721','7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c35b0b6fc9210c8dc2','977837f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722','7f0e397bd097c35b0b6fc9210c8dc2', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721','7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '977837f0e37f14998082b0787b06bd','7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722','977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722','7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721','7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd','7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722','977837f0e37f14998082b0723b06bd', '7f07e7f0e37f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722','7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b0721','7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f595b0b0bb0b6fb0722', '7f0e37f0e37f14898082b0723b02d5','7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f531b0b0bb0b6fb0722','7f0e37f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721','7f0e37f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd','7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35','7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722','7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f149b0723b0787b0721','7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0723b06bd','7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', '7f0e37f0e366aa89801eb072297c35','7ec967f0e37f14998082b0723b06bd', '7f07e7f0e37f14998083b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722','7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14898082b0723b02d5', '7f07e7f0e37f14998082b0787b0721','7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66aa89801e9808297c35', '665f67f0e37f14898082b0723b02d5','7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66a449801e9808297c35','665f67f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721','7f0e36665b66a449801e9808297c35', '665f67f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd','7f07e7f0e47f531b0723b0b6fb0721', '7f0e26665b66a449801e9808297c35', '665f67f0e37f1489801eb072297c35','7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722'],nStr1: ["\u65e5", "\u4e00", "\u4e8c", "\u4e09", "\u56db", "\u4e94", "\u516d", "\u4e03", "\u516b", "\u4e5d", "\u5341"],nStr2: ["\u521d", "\u5341", "\u5eff", "\u5345"],nStr3: ["\u6b63", "\u4e8c", "\u4e09", "\u56db", "\u4e94", "\u516d", "\u4e03", "\u516b", "\u4e5d", "\u5341", "\u51ac", "\u814a"],lYearDays: function (y) {var i, sum = 348;for (i = 0x8000; i > 0x8; i >>= 1) { sum += (calendar.lunarInfo[y - 1900] & i) ? 1 : 0; }return (sum + calendar.leapDays(y));},leapMonth: function (y) {return (calendar.lunarInfo[y - 1900] & 0xf);},leapDays: function (y) {if (calendar.leapMonth(y)) {return ((calendar.lunarInfo[y - 1900] & 0x10000) ? 30 : 29);}return (0);},monthDays: function (y, m) {if (m > 12 || m < 1) { return -1 }return ((calendar.lunarInfo[y - 1900] & (0x10000 >> m)) ? 30 : 29);},solarDays: function (y, m) {if (m > 12 || m < 1) { return -1 }var ms = m - 1;if (ms == 1) {return (((y % 4 == 0) && (y % 100 != 0) || (y % 400 == 0)) ? 29 : 28);} else {return (calendar.solarMonth[ms]);}},toGanZhi: function (offset) {return (calendar.Gan[offset % 10] + calendar.Zhi[offset % 12]);},getTerm: function (y, n) {if (y < 1900 || y > 2100) { return -1; }if (n < 1 || n > 24) { return -1; }var _table = calendar.sTermInfo[y - 1900];var _info = [parseInt('0x' + _table.substr(0, 5)).toString(),parseInt('0x' + _table.substr(5, 5)).toString(),parseInt('0x' + _table.substr(10, 5)).toString(),parseInt('0x' + _table.substr(15, 5)).toString(),parseInt('0x' + _table.substr(20, 5)).toString(),parseInt('0x' + _table.substr(25, 5)).toString()];var _calday = [_info[0].substr(0, 1),_info[0].substr(1, 2),_info[0].substr(3, 1),_info[0].substr(4, 2),_info[1].substr(0, 1),_info[1].substr(1, 2),_info[1].substr(3, 1),_info[1].substr(4, 2),_info[2].substr(0, 1),_info[2].substr(1, 2),_info[2].substr(3, 1),_info[2].substr(4, 2),_info[3].substr(0, 1),_info[3].substr(1, 2),_info[3].substr(3, 1),_info[3].substr(4, 2),_info[4].substr(0, 1),_info[4].substr(1, 2),_info[4].substr(3, 1),_info[4].substr(4, 2),_info[5].substr(0, 1),_info[5].substr(1, 2),_info[5].substr(3, 1),_info[5].substr(4, 2),];return parseInt(_calday[n - 1]);},toChinaMonth: function (m) {if (m > 12 || m < 1) { return -1 }var s = calendar.nStr3[m - 1];s += "\u6708";return s;},toChinaDay: function (d) {var s;switch (d) {case 10:s = '\u521d\u5341';break;case 20:s = '\u4e8c\u5341';break;case 30:s = '\u4e09\u5341';break;default:s = calendar.nStr2[Math.floor(d / 10)];s += calendar.nStr1[d % 10];}return (s);},getAnimal: function (y) {return calendar.Animals[(y - 4) % 12]},solar2lunar: function (y, m, d) {if (y < 1900 || y > 2100) { return -1; }if (y == 1900 && m == 1 && d < 31) { return -1; }if (!y) {var objDate = new Date();} else {var objDate = new Date(y, parseInt(m) - 1, d)}var i, leap = 0, temp = 0;var y = objDate.getFullYear(), m = objDate.getMonth() + 1, d = objDate.getDate();var offset = (Date.UTC(objDate.getFullYear(), objDate.getMonth(), objDate.getDate()) - Date.UTC(1900, 0, 31)) / 86400000;for (i = 1900; i < 2101 && offset > 0; i++) { temp = calendar.lYearDays(i); offset -= temp; }if (offset < 0) { offset += temp; i--; }var isTodayObj = new Date(), isToday = false;if (isTodayObj.getFullYear() == y && isTodayObj.getMonth() + 1 == m && isTodayObj.getDate() == d) {isToday = true;}var nWeek = objDate.getDay(), cWeek = calendar.nStr1[nWeek];if (nWeek == 0) { nWeek = 7; }var year = i;var leap = calendar.leapMonth(i);var isLeap = false;for (i = 1; i < 13 && offset > 0; i++) {if (leap > 0 && i == (leap + 1) && isLeap == false) {--i;isLeap = true; temp = calendar.leapDays(year);} else {temp = calendar.monthDays(year, i);}if (isLeap == true && i == (leap + 1)) { isLeap = false; }offset -= temp;}if (offset == 0 && leap > 0 && i == leap + 1) {if (isLeap) {isLeap = false;} else {isLeap = true; --i;}}if (offset < 0) { offset += temp; --i; }var month = i;var day = offset + 1;var sm = m - 1;var term3 = calendar.getTerm(year, 3);var gzY = calendar.toGanZhi(year - 4);gzY = calendar.toGanZhi(year - 4); //modifyvar firstNode = calendar.getTerm(y, (m * 2 - 1));var secondNode = calendar.getTerm(y, (m * 2));var gzM = calendar.toGanZhi((y - 1900) * 12 + m + 11);if (d >= firstNode) {gzM = calendar.toGanZhi((y - 1900) * 12 + m + 12);}var isTerm = false;var Term = null;if (firstNode == d) {isTerm = true;Term = calendar.solarTerm[m * 2 - 2];}if (secondNode == d) {isTerm = true;Term = calendar.solarTerm[m * 2 - 1];}var dayCyclical = Date.UTC(y, sm, 1, 0, 0, 0, 0) / 86400000 + 25567 + 10;var gzD = calendar.toGanZhi(dayCyclical + d - 1);return { 'lYear': year, 'lMonth': month, 'lDay': day, 'Animal': calendar.getAnimal(year), 'IMonthCn': (isLeap ? "\u95f0" : '') + calendar.toChinaMonth(month), 'IDayCn': calendar.toChinaDay(day), 'cYear': y, 'cMonth': m, 'cDay': d, 'gzYear': gzY, 'gzMonth': gzM, 'gzDay': gzD, 'isToday': isToday, 'isLeap': isLeap, 'nWeek': nWeek, 'ncWeek': "\u661f\u671f" + cWeek, 'isTerm': isTerm, 'Term': Term };}};//公历节日var _festival1 = {'0101': '元旦节','0108': '周恩来逝世纪念日','0110': '中国人民警察节','0126': '国际海关日','0202': '世界湿地日','0204': '世界癌症日','0207': '国际声援南非日','0210': '国际气象节','0214': '情人节','0219': '邓小平逝世纪念日','0301': '国际海豹日 国际民防日','0303': '全国爱耳日','0305': '学雷锋纪念日 中国青年志愿者服务日','0306': '世界青光眼日','0307': '女生节','0308': '妇女节','0309': '保护母亲河日','0311': '国际尊严尊敬日','0312': '植树节','0314': '国际警察日 白色情人节','0315': '消费者权益日','0317': '中国国医节 国际航海日','0318': '全国科技人才活动日 全国爱肝日','0321': '世界森林日 国际消除种族歧视日 世界儿歌日 世界诗歌日 世界睡眠日 世界唐氏综合征日 ','0322': '世界水日','0323': '世界气象日','0324': '世界防治结核病日','0327': '世界戏剧日','0329': '黄花岗七十二烈士殉难纪念日','0401': '全国爱国卫生运动月(四月) 税收宣传月(四月) 愚人节','0402': '国际儿童图书日 世界自闭症日','0405': '清明','0407': '世界卫生日','0410': '非洲环境保护日','0411': '世界帕金森病日','0415': '全民国家安全教育日','0417': '世界血友病日','0418': '国际古迹遗址日','0421': '全国企业家活动日','0422': '世界地球日 世界法律日','0423': '世界图书和版权日 中国人民解放军海军建军节','0424': '中国航天日 亚非新闻工作者日 世界青年反对殖民主义日','0425': '全国儿童预防接种宣传日 世界防治疟疾日','0426': '世界知识产权日','0429': '化学战受害者纪念日','0430': '全国交通安全反思日','0501': '劳动节','0503': '世界新闻自由日','0504': '青年节 科技传播日','0515': '防治碘缺乏病日','0508': '世界红十字日','0510': '中国品牌日','0512': '国际护士节 全国防灾减灾日','0515': '国际家庭日 碘缺乏病防治日','0517': '世界电信日','0518': '国际博物馆日','0519': '中国旅游日','0520': '全国学生营养日 全国母乳喂养宣传日 世界计量日','0521': '世界文化发展日','0522': '国际生物多样性日','0526': '世界向人体条件挑战日','0529': '国际维和人员日','0531': '世界无烟日','0601': '国际儿童节 世界牛奶日','0604': '受侵略戕害的无辜儿童国际日','0605': '世界环境日','0606': '全国爱眼日','0608': '世界海洋日','0612': '世界无童工日','0614': '世界献血者日','0617': '世界防治荒漠化和干旱日','0620': '世界难民日','0622': '中国儿童慈善活动日','0623': '国际奥林匹克日','0625': '全国土地日','0626': '国际禁毒日 联合国宪章日 支援酷刑受害者国际日','0701': '建党节 香港回归纪念日','0702': '国际体育记者日','0706': '国际接吻日','0708': '世界过敏性疾病日','0711': '中国航海日 世界人口日','0718': '纳尔逊·曼德拉国际日','0720': '人类月球日','0726': '世界语创立日','0728': '世界肝炎日','0801': '建军节','0808': '中国男子节(爸爸节) 全民健身日','0812': '国际青年节','0813': '国际左撇子日','0815': '日本无条件投降日','0819': '中国医师节','0826': '全国律师咨询日','0903': '中国人民抗日战争胜利纪念日','0905': '中华(国际)慈善日','0908': '国际扫盲日 国际新闻工作者日','0910': '教师节 世界预防自杀日','0915': '国际民主日','0916': '国际臭氧层保护日 中国脑健康日','0918': '九·一八事变纪念日','0920': '全国(国际)爱牙日 公民道德宣传日','0921': '国际和平日 世界停火日 世界阿尔茨海默病日','0927': '世界旅游日','0928': '孔子诞辰日','0929': '世界心脏日','0930': '烈士纪念日','1001': '国庆节 国际音乐日 国际老人节','1002': '国际非暴力日 国际和平与民主自由斗争日','1004': '世界动物日','1008': '全国高血压日','1005': '世界教师日','1009': '世界邮政日','1010': '辛亥革命纪念日 世界精神卫生日','1011': '国际女童日','1012': '世界关节炎日','1013': '世界保健日 国际减灾日 国际标准时间日 中国少先队建队日','1014': '世界标准日','1015': '国际盲人节 国际农村妇女日','1016': '世界粮食日','1017': '国际消除贫困日 国家扶贫日','1020': '世界骨质疏松日 世界厨师日','1022': '世界传统医药日','1024': '联合国日 世界发展信息日','1025': '抗美援朝纪念日 人类天花绝迹日','1028': '世界男性健康日','1031': '世界勤俭日','1107': '十月社会主义革命纪念日','1108': '中国记者日','1109': '消防宣传日','1111': '国际科学与和平周(本日所属的一周)','1112': '孙中山诞辰纪念日','1114': '世界防治糖尿病日','1116': '国际宽容日','1117': '国际大学生节','1119': '世界厕所日','1120': '世界儿童日','1121': '世界问候日 世界电视日','1125': '国际消除对妇女暴力日','1129': '声援巴勒斯坦人民国际日','1201': '世界艾滋病日','1202': '全国交通安全日 废除奴隶制国际日','1203': '国际残疾人日','1204': '全国法制宣传日 国家宪法日','1205': '国际志愿人员日 世界弱能人士日','1207': '国际民航日','1209': '世界足球日 国际反腐败日 一二·九运动纪念日','1210': '世界人权日','1211': '国际山岳日','1212': '西安事变纪念日','1213': '国家公祭日','1215': '世界强化免疫日','1218': '国际移徙者日','1219': '联合国南南合作日','1220': '澳门回归日','1221': '国际篮球日','1224': '平安夜','1225': '圣诞节','1226': '毛泽东诞辰纪念日'};//某月的第几个星期几,第3位为5表示最后一星期var _festival2 = {'0110': '黑人日','0150': '世界麻风日','0324': '世界肾脏日','0332': '世界社会工作日','0351': '全国中小学生安全教育日','0520': '母亲节','0530': '全国助残日','0626': '文化和自然遗产日','0630': '父亲节','0716': '国际合作节','0926': '世界急救日','0936': '全民国防教育日','0930': '世界清洁地球日','0940': '国际聋人节','1011': '世界住房日 国际建筑日','1024': '世界视觉日','1031': '世界镇痛日','1124': '吉尼斯世界纪录日','1220': '国际儿童电视广播日'};//农历节日var _festival3 = {'0101': '春节','0102': '初二','0103': '初三','0115': '元宵节','0202': '龙抬头节','0303': '上巳节','0323': '妈祖生辰','0505': '端午节','0624': '火把节','0707': '七夕节','0715': '中元节','0815': '中秋节','0909': '重阳节 中国老年节','1001': '寒衣节','1015': '下元节','1208': '腊八节','1223': '小年','0100': '除夕'};//假日安排数据var _holiday = {'2011': { '0402': 0, '0403': 1, '0404': 1, '0405': 1, '0430': 1, '0501': 1, '0502': 1, '0604': 1, '0605': 1, '0606': 1, '0910': 1, '0911': 1, '0912': 1, '1001': 1, '1002': 1, '1003': 1, '1004': 1, '1005': 1, '1006': 1, '1007': 1, '1008': 0, '1009': 0, '1231': 0 },'2012': { '0101': 1, '0102': 1, '0103': 1, '0121': 0, '0122': 1, '0123': 1, '0124': 1, '0125': 1, '0126': 1, '0127': 1, '0128': 1, '0129': 0, '0331': 0, '0401': 0, '0402': 1, '0403': 1, '0404': 1, '0428': 0, '0429': 1, '0430': 1, '0501': 1, '0622': 1, '0623': 1, '0624': 1, '0929': 0, '0930': 1, '1001': 1, '1002': 1, '1003': 1, '1004': 1, '1005': 1, '1006': 1, '1007': 1 },'2013': { '0101': 1, '0102': 1, '0103': 1, '0105': 0, '0106': 0, '0209': 1, '0210': 1, '0211': 1, '0212': 1, '0213': 1, '0214': 1, '0215': 1, '0216': 0, '0217': 0, '0404': 1, '0405': 1, '0406': 1, '0407': 0, '0427': 0, '0428': 0, '0429': 1, '0430': 1, '0501': 1, '0608': 0, '0609': 0, '0610': 1, '0611': 1, '0612': 1, '0919': 1, '0920': 1, '0921': 1, '0922': 0, '0929': 0, '1001': 1, '1002': 1, '1003': 1, '1004': 1, '1005': 1, '1006': 1, '1007': 1, '1012': 0 },'2014': { '0101': 1, '0126': 0, '0131': 1, '0201': 1, '0202': 1, '0203': 1, '0203': 1, '0204': 1, '0205': 1, '0206': 1, '0208': 0, '0405': 1, '0406': 1, '0407': 1, '0501': 1, '0502': 1, '0503': 1, '0504': 0, '0531': 1, '0601': 1, '0602': 1, '0908': 1, '0928': 0, '1001': 1, '1002': 1, '1003': 1, '1004': 1, '1005': 1, '1006': 1, '1007': 1, '1011': 0 },'2015': { '0101': 1, '0102': 1, '0103': 1, '0104': 0, '0215': 0, '0218': 1, '0219': 1, '0220': 1, '0221': 1, '0222': 1, '0223': 1, '0224': 1, '0228': 0, '0404': 1, '0405': 1, '0406': 1, '0501': 1, '0502': 1, '0503': 1, '0620': 1, '0621': 1, '0622': 1, '0903': 1, '0904': 1, '0905': 1, '0906': 0, '0927': 1, '1001': 1, '1002': 1, '1003': 1, '1004': 1, '1005': 1, '1006': 1, '1007': 1, '1010': 0 },'2016': { '0101': 1, '0102': 1, '0103': 1, '0206': 0, '0207': 1, '0208': 1, '0209': 1, '0210': 1, '0211': 1, '0212': 1, '0213': 1, '0214': 0, '0402': 1, '0403': 1, '0404': 1, '0430': 1, '0501': 1, '0502': 1, '0609': 1, '0610': 1, '0611': 1, '0612': 0, '0915': 1, '0916': 1, '0917': 1, '0918': 0, '1001': 1, '1002': 1, '1003': 1, '1004': 1, '1005': 1, '1006': 1, '1007': 1, '1008': 0, '1009': 0 },'2017': { '0101': 1, '0102': 1, '0122': 0, '0127': 1, '0128': 1, '0129': 1, '0130': 1, '0131': 1, '0201': 1, '0202': 1, '0204': 0, '0401': 0, '0402': 1, '0403': 1, '0404': 1, '0429': 1, '0430': 1, '0501': 1, '0527': 0, '0528': 1, '0529': 1, '0530': 1, '0930': 0, '1001': 1, '1002': 1, '1003': 1, '1004': 1, '1005': 1, '1006': 1, '1007': 1, '1008': 1, '1230': 1, '1231': 1 },'2018': { '0101': 1, '0211': 0, '0215': 1, '0216': 1, '0217': 1, '0218': 1, '0219': 1, '0220': 1, '0221': 1, '0224': 0, '0405': 1, '0406': 1, '0407': 1, '0408': 0, '0428': 0, '0429': 1, '0430': 1, '0501': 1, '0616': 1, '0617': 1, '0618': 1, '0922': 1, '0923': 1, '0924': 1, '0929': 0, '0930': 0, '1001': 1, '1002': 1, '1003': 1, '1004': 1, '1005': 1, '1006': 1, '1007': 1, '1229': 0, '1230': 1, '1231': 1 },'2019': { '0101': 1, '0202': 0, '0203': 0, '0204': 1, '0205': 1, '0206': 1, '0207': 1, '0208': 1, '0209': 1, '0210': 1, '0405': 1, '0406': 1, '0407': 1, '0428': 0, '0501': 1, '0502': 1, '0503': 1, '0504': 1, '0505': 0, '0607': 1, '0608': 1, '0609': 1, '0913': 1, '0914': 1, '0915': 1, '0929': 0, '1001': 1, '1002': 1, '1003': 1, '1004': 1, '1005': 1, '1006': 1, '1007': 1, '1012': 0 },'2020': { '0101': 1, '0119': 0, '0124': 1, '0125': 1, '0126': 1, '0127': 1, '0128': 1, '0129': 1, '0130': 1, '0201': 0, '0404': 1, '0405': 1, '0406': 1, '0426': 0, '0501': 1, '0502': 1, '0503': 1, '0504': 1, '0505': 1, '0509': 0, '0625': 1, '0626': 1, '0627': 1, '0628': 0, '0927': 0, '1001': 1, '1002': 1, '1003': 1, '1004': 1, '1005': 1, '1006': 1, '1007': 1, '1008': 1, '1010': 0 },'2021': { '0101': 1, '0102': 1, '0103': 1, '0207': 0, '0211': 1, '0212': 1, '0213': 1, '0214': 1, '0215': 1, '0216': 1, '0217': 1, '0220': 0, '0403': 1, '0404': 1, '0405': 1, '0425': 0, '0501': 1, '0502': 1, '0503': 1, '0504': 1, '0505': 1, '0508': 0, '0612': 1, '0613': 1, '0614': 1, '0918': 0, '0919': 1, '0920': 1, '0921': 1, '0926': 0, '1001': 1, '1002': 1, '1003': 1, '1004': 1, '1005': 1, '1006': 1, '1007': 1, '1009': 0 },'2022': { '0101': 1, '0102': 1, '0103': 1, '0129': 0, '0130': 0, '0131': 1, '0201': 1, '0202': 1, '0203': 1, '0204': 1, '0205': 1, '0206': 1, '0402': 0, '0403': 1, '0404': 1, '0405': 1, '0424': 0, '0430': 1, '0501': 1, '0502': 1, '0503': 1, '0504': 1, '0507': 0, '0603': 1, '0604': 1, '0605': 1, '0910': 1, '0911': 1, '0912': 1, '1001': 1, '1002': 1, '1003': 1, '1004': 1, '1005': 1, '1006': 1, '1007': 1, '1008': 0, '1009': 0 }};//获取日期数据var getDateObj = function (year, month, day) {var date = arguments.length && year ? new Date(year, month - 1, day) : new Date();return {'year': date.getFullYear(),'month': date.getMonth() + 1,'day': date.getDate(),'week': date.getDay()};};//当天var _today = getDateObj();//获取当月天数var getMonthDays = function (obj) {var day = new Date(obj.year, obj.month, 0);return day.getDate();};if (!String.prototype.trim) {String.prototype.trim = function () {return this.replace(/^\s+|\s+$/g, '');};}//获取某天日期信息var getDateInfo = function (obj) {var info = calendar.solar2lunar(obj.year, obj.month, obj.day);var cMonth = info.cMonth > 9 ? '' + info.cMonth : '0' + info.cMonth;var cDay = info.cDay > 9 ? '' + info.cDay : '0' + info.cDay;var lMonth = info.lMonth > 9 ? '' + info.lMonth : '0' + info.lMonth;var lDay = info.lDay > 9 ? '' + info.lDay : '0' + info.lDay;var code1 = cMonth + cDay;var code2 = cMonth + Math.ceil(info.cDay / 7) + info.nWeek % 7;var code3 = lMonth + lDay;var days = getMonthDays(obj);//节日信息info['festival'] = '';if (_festival3[code3]) {info['festival'] += _festival3[code3];}if (_festival1[code1]) {info['festival'] += ' ' + _festival1[code1];}if (_festival2[code2]) {info['festival'] += ' ' + _festival2[code2];}if (obj['day'] + 7 > days) {var code4 = cMonth + 5 + info.nWeek % 7;if (code4 != code2 && _festival2[code4]) {info['festival'] += ' ' + _festival2[code4];}}info['festival'] = info['festival'].trim();//放假、调休等标记info['sign'] = '';if (_holiday[info.cYear]) {var holiday = _holiday[info.cYear];if (typeof holiday[code1] != 'undefined') {info['sign'] = holiday[code1] ? 'holiday' : 'work';}}if (info.cYear == _today.year && info.cMonth == _today.month && info.cDay == _today.day) {info['sign'] = 'today';}return info;};//获取日历信息return (function (date) {var date = date || _today;var first = getDateObj(date['year'], date['month'], 1);		//当月第一天var days = getMonthDays(date);							//当月天数var data = [];										//日历信息var obj = {};//上月日期for (var i = first['week']; i > 0; i--) {obj = getDateObj(first['year'], first['month'], first['day'] - i);var info = getDateInfo(obj);info['disabled'] = 1;data.push(info);}//当月日期for (var i = 0; i < days; i++) {obj = {'year': first['year'],'month': first['month'],'day': first['day'] + i,'week': (first['week'] + i) % 7};var info = getDateInfo(obj);info['disabled'] = 0;data.push(info);}//下月日期var last = obj;for (var i = 1; last['week'] + i < 7; i++) {obj = getDateObj(last['year'], last['month'], last['day'] + i);var info = getDateInfo(obj);info['disabled'] = 1;data.push(info);}return {'date': getDateInfo(date),				//当前日历选中日期'data': data};});
})();//万年历
(function () {var $mod_calendar = DOMUtil.getElementsByClassName('mod-calendar')[0];var $table = DOMUtil.getElementsByClassName('table', $mod_calendar)[0];var $year = DOMUtil.getElementsByClassName('year', $mod_calendar)[0];var $month = DOMUtil.getElementsByClassName('month', $mod_calendar)[0];var $holiday = DOMUtil.getElementsByClassName('holiday', $mod_calendar)[0];var $goback = DOMUtil.getElementsByClassName('goback', $mod_calendar)[0];var $prev_year = DOMUtil.getElementsByClassName('prev-year', $mod_calendar)[0];var $next_year = DOMUtil.getElementsByClassName('next-year', $mod_calendar)[0];var $prev_month = DOMUtil.getElementsByClassName('prev-month', $mod_calendar)[0];var $next_month = DOMUtil.getElementsByClassName('next-month', $mod_calendar)[0];var _data = [];var _day = 1;var holiday = {'2011': [{value: '2011-01-01',name: '元旦'},{value: '2011-02-03',name: '春节'},{value: '2011-04-05',name: '清明'},{value: '2011-05-01',name: '劳动节'},{value: '2011-06-06',name: '端午节'},{value: '2011-09-12',name: '中秋节'},{value: '2011-10-01',name: '国庆节'}],'2012': [{value: '2012-01-01',name: '元旦'},{value: '2012-01-23',name: '春节'},{value: '2012-04-04',name: '清明'},{value: '2012-05-01',name: '劳动节'},{value: '2012-06-23',name: '端午节'},{value: '2012-09-30',name: '中秋节'},{value: '2012-10-01',name: '国庆节'}],'2013': [{value: '2013-01-01',name: '元旦'},{value: '2013-02-10',name: '春节'},{value: '2013-04-04',name: '清明'},{value: '2013-05-01',name: '劳动节'},{value: '2013-06-12',name: '端午节'},{value: '2013-09-19',name: '中秋节'},{value: '2013-10-01',name: '国庆节'}],'2014': [{value: '2014-01-01',name: '元旦'},{value: '2014-01-31',name: '春节'},{value: '2014-04-05',name: '清明'},{value: '2014-05-01',name: '劳动节'},{value: '2014-06-02',name: '端午节'},{value: '2014-09-08',name: '中秋节'},{value: '2014-10-01',name: '国庆节'}],'2015': [{value: '2015-01-01',name: '元旦'},{value: '2015-02-19',name: '春节'},{value: '2015-04-05',name: '清明'},{value: '2015-05-01',name: '劳动节'},{value: '2015-06-20',name: '端午节'},{value: '2015-09-03',name: '胜利日'},{value: '2015-09-27',name: '中秋节'},{value: '2015-10-01',name: '国庆节'}],'2016': [{value: '2016-01-01',name: '元旦'},{value: '2016-02-08',name: '春节'},{value: '2016-04-04',name: '清明'},{value: '2016-05-01',name: '劳动节'},{value: '2016-06-09',name: '端午节'},{value: '2016-09-15',name: '中秋节'},{value: '2016-10-01',name: '国庆节'}],'2017': [{value: '2017-01-01',name: '元旦'},{value: '2017-01-28',name: '春节'},{value: '2017-04-04',name: '清明'},{value: '2017-05-01',name: '劳动节'},{value: '2017-05-30',name: '端午节'},{value: '2017-10-04',name: '中秋节'},{value: '2017-10-01',name: '国庆节'}],'2018': [{value: '2018-01-01',name: '元旦'},{value: '2018-02-16',name: '春节'},{value: '2018-04-05',name: '清明'},{value: '2018-05-01',name: '劳动节'},{value: '2018-06-18',name: '端午节'},{value: '2018-09-24',name: '中秋节'},{value: '2018-10-01',name: '国庆节'}],'2019': [{value: '2019-01-01',name: '元旦'},{value: '2019-02-05',name: '春节'},{value: '2019-04-05',name: '清明'},{value: '2019-05-01',name: '劳动节'},{value: '2019-06-07',name: '端午节'},{value: '2019-09-13',name: '中秋节'},{value: '2019-10-01',name: '国庆节'}],'2020': [{value: '2020-01-01',name: '元旦'},{value: '2020-01-25',name: '春节'},{value: '2020-04-04',name: '清明'},{value: '2020-05-01',name: '劳动节'},{value: '2020-06-25',name: '端午节'},{value: '2020-10-01',name: '中秋节'},{value: '2020-10-01',name: '国庆节'}],'2021': [{value: '2021-01-01',name: '元旦'},{value: '2021-02-11',name: '春节'},{value: '2021-04-03',name: '清明'},{value: '2021-05-01',name: '劳动节'},{value: '2021-06-12',name: '端午节'},{value: '2021-9-19',name: '中秋节'},{value: '2021-10-01',name: '国庆节'}],'2022': [{value: '2022-01-01',name: '元旦'},{value: '2022-01-31',name: '春节'},{value: '2022-04-03',name: '清明'},{value: '2022-04-30',name: '劳动节'},{value: '2022-06-03',name: '端午节'},{value: '2022-09-10',name: '中秋节'},{value: '2022-10-01',name: '国庆节'}]};var format = function (date) {var result = getData(date);var date = result['date'];_data = result['data'];var map = {'work': '班','holiday': '休'}var html = '<table>\<thead>\<tr><th>日</th><th>一</th><th>二</th><th>三</th><th>四</th><th>五</th><th>六</th></tr>\</thead>\<tbody>\<tr>';for (var i = 0, len = _data.length; i < len; i++) {var item = _data[i];var className = '', className2 = '';if (item['sign']) {className += item['sign'];}if (item['disabled']) {className += ' disabled';}if (date && item['cMonth'] == date['cMonth'] && item['cDay'] == date['cDay']) {className2 = 'active';}var festival = item['festival'].split(' ')[0];if (festival.length > 3) {festival = '';}html += '<td class="' + className + '" data-id="' + i + '">\<a href="javascript:;"'+ (className2 ? ' class="' + className2 + '"' : '') + '>\<span class="s1">'+ item['cDay'] + '</span>\<span class="s2">'+ (item['Term'] || festival || item['IDayCn']) + '</span>\'+ (item['sign'] && map[item['sign']] ? '<i>' + map[item['sign']] + '</i>' : '') + '\</a>\</td>';if (i % 7 == 6 && i < len - 1) {html += '</tr><tr>';}}html += '</tr>\</tbody>\</table>';$year.value = date['cYear'];$month.value = date['cMonth'];$table.innerHTML = html;};var format_setting = function (year) {var year = year || (new Date()).getFullYear();$holiday.innerHTML = '';var $o = new Option("假日安排", "");$holiday.add($o);if (holiday[year]) {var items = holiday[year];for (var i = 0; i < items.length; i++) {var $option = new Option(items[i]['name'], items[i]['value']);$holiday.add($option);}}};$year.onchange = function () {var year = $year.value;var month = $month.value;format({ 'year': year, 'month': month, 'day': _day });format_setting(year);};$month.onchange = function () {var year = $year.value;var month = $month.value;format({ 'year': year, 'month': month, 'day': _day });};$holiday.onchange = function () {var value = this.value;if (value) {var arr = value.split('-');format({ 'year': +arr[0], 'month': +arr[1], 'day': +arr[2] });}};$goback.onclick = function () {format();format_setting();};$prev_year.onclick = function () {var year = $year.value;var month = $month.value;year--;format({ 'year': year, 'month': month, 'day': _day });format_setting(year);};$next_year.onclick = function () {var year = $year.value;var month = $month.value;year++;format({ 'year': year, 'month': month, 'day': _day });format_setting(year);};$prev_month.onclick = function () {var year = $year.value;var month = $month.value;month--;format({ 'year': year, 'month': month, 'day': _day });if (month == 0) format_setting(--year);};$next_month.onclick = function () {var year = $year.value;var month = $month.value;month++;format({ 'year': year, 'month': month, 'day': _day });//alert(year);alert(month);if (month == 13) format_setting(++year);};$table.onclick = function (e) {e = e || window.event;var target = e.target || e.srcElement;while (target.tagName != 'TD' && target.tagName != 'TABLE') {target = target.parentNode;}var id = target.getAttribute('data-id');if (target.tagName == 'TD' && id) {var data = _data[id];_day = data['cDay'];format({ 'year': data['cYear'], 'month': data['cMonth'], 'day': data['cDay'] });}};format();format_setting();
})();

大功告成!天下没有免费的午餐,怎么说我也是有一定饭量的人,小心我去你家蹭饭啊,后面应该点什么按钮什么不用我多说了吧,小的跪谢啦!!!

最后欢迎大家讨论发言,提出问题~~~