console
; (function (win) {
"use strict";
var dc_self;
var dorseyUI = function () {
return new dorseyUI.fn.init();
};
function countBits(u) {
const uCount = u - (u >> 1 & 0o33333333333) - (u >> 2 & 0o11111111111);
return (uCount + (uCount >> 3) & 0o30707070707) % 63;
}
dorseyUI.fn = dorseyUI.prototype = {
constructor: dorseyUI,
init() {
dc_self = this;
return this;
},
dcCalendar(obj) {
var calendar = {
lunarData: [
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],
lunarYearOffset: [],
sTermDate: [
0, 21208, 42467, 63836, 85337, 107014,
128867, 150921, 173149, 195551, 218072, 240693,
263343, 285989, 308563, 331033, 353350, 375494,
397447, 419210, 440795, 462224, 483532, 504758
],
sTermChinese: [
"立春", "雨水", "惊蛰", "春分", "清明", "谷雨",
"立夏", "小满", "芒种", "夏至", "小暑", "大暑",
"立秋", "处暑", "白露", "秋分", "寒露", "霜降",
"立冬", "小雪", "大雪", "冬至", "小寒", "大寒"
],
festivalChinese: {
"0101": "元旦",
"0214": "情人节",
"0308": "妇女节",
"0312": "植树节",
"0315": "消费者权益日",
"0321": "世界森林日、世界儿歌日",
"0401": "愚人节",
"0407": "世界卫生日",
"0422": "世界地球日",
"0501": "劳动节",
"0504": "青年节",
"0505": "碘缺乏病防治日",
"0508": "世界红十字日",
"0512": "国际护士节",
"0515": "国际家庭日",
"0517": "世界电信日",
"0518": "国际博物馆日",
"0520": "520情人节",
"0523": "国际牛奶日",
"0531": "世界无烟日",
"0601": "儿童节",
"0605": "世界环境日",
"0606": "全国爱眼日",
"0616": "防治荒漠化和干旱日",
"0623": "国际奥林匹克日",
"0625": "全国土地日",
"0626": "国际反毒品日",
"0701": "建党节 香港回归纪念 国际建筑日",
"0707": "中国人民抗日战争纪念日",
"0711": "世界人口日",
"0801": "建军节",
"0908": "国际扫盲日",
"0909": "毛泽东逝世纪念",
"0910": "教师节",
"0916": "国际臭氧层保护日",
"0920": "国际爱牙日",
"0927": "世界旅游日",
"0928": "孔子诞辰",
"1001": "国庆节 国际音乐日",
"1004": "世界动物日",
"1006": "老人节",
"1008": "全国高血压日 世界视觉日",
"1009": "世界邮政日",
"1015": "国际盲人节",
"1016": "世界粮食日",
"1017": "世界消除贫困日",
"1024": "联合国日",
"1108": "中国记者日",
"1109": "消防宣传日",
"1112": "孙中山诞辰纪念",
"1114": "世界糖尿病日",
"1117": "国际大学生节",
"1201": "世界艾滋病日",
"1203": "世界残疾人日",
"1209": "世界足球日",
"1220": "澳门回归纪念",
"1225": "圣诞节",
"1226": "毛泽东诞辰纪念",
"1229": "国际生物多样性日"
},
lFestivalChinese: {
"0101": "春节",
"0202": "头牙",
"0115": "元宵节",
"0505": "端午节",
"0707": "七巧节",
"0715": "中元节",
"0815": "中秋节",
"0909": "重阳节",
"1208": "腊八节",
"1216": "尾牙",
"1223": "小年",
"0100": "除夕"
},
lDecade: ["初", "初", "十", "二", "廿", "三"],
lDate: ["十", "一", "二", "三", "四", "五", "六", "七", "八", "九"],
lMonthArr: ["正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "冬", "腊"],
heavenlyStems: ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"],
terrestrialBranch: ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"],
animals: ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"],
dateFunction() {
return new Date();
},
thisTime() {
var _self = this;
var year = _self.dateFunction().getFullYear(),
month = _self.dateFunction().getMonth(),
today = _self.dateFunction().getDate(),
weekNum = _self.dateFunction().getDay(),
hour = _self.dateFunction().getHours(),
minute = _self.dateFunction().getMinutes(),
second = _self.dateFunction().getSeconds();
return [year, month, today, weekNum, hour, minute, second];
},
isLeapYear(year) {
return 0 + (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0)
},
monthDates(y) {
return [31, 28 + this.isLeapYear(y), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
},
week: ['日', '一', '二', '三', '四', '五', '六'],
lunarTran(y) {
var lunarData = this.lunarData[y - 1900];
var hexadecimal = lunarData.toString(16),
head = Math.floor(lunarData / 65536).toString(2),
center = Math.floor((lunarData % 65536) / 16).toString(2),
end = lunarData % 16;
if (center.length < 12) {
var i = 12 - center.length;
while (i--) {
center = "0" + center;
}
}
hexadecimal.length !== 5 ? hexadecimal = "0x0" + hexadecimal : hexadecimal = "0x" + hexadecimal;
var bigMonthNum = (center + head).match(new RegExp('1', 'g')).length,
monthDetail = center.split('');
end !== 0 ? monthDetail.splice(end, 0, head) : end;
var everyMonthDays = [];
for (var i = 0; i < monthDetail.length; i++) {
if (monthDetail[i] === "1") {
everyMonthDays.push(30);
}
else {
everyMonthDays.push(29);
}
}
return {
thisYear: y,
lunarData: hexadecimal,
isBigLeadMonth: parseInt(head),
monthBinaryData: center,
monthDetail: monthDetail,
everyMonthDays: everyMonthDays,
bigMonthNum: bigMonthNum,
whichIsLeadMonth: end
};
},
numToLunar(num) {
return this.lDecade[(num / 10 | 0) * 2 - (num % 10 === 0)] + this.lDate[num % 10];
},
daysInYear: function (y) {
var obj = this.lunarTran(y);
return obj.monthDetail.length * 29 + obj.bigMonthNum;
},
daysInMonth: function (y, m) {
return (this.lunarData[y - 1900] & (0x10000 >> (m + 1))) ? 30 : 29;
},
daysInPreMonth: function (y, m) {
var _self = this,
obj = _self.lunarTran(y);
var days;
if (m > 0) {
if (obj.isBigLeadMonth === "1" && m === obj.whichIsLeadMonth + 1) {
return (obj.isBigLeadMonth === 0 ? 29 : 30);
}
else {
return _self.daysInMonth(y, m - 1);
}
}
else {
var objPre = _self.lunarTran(y - 1);
return objPre.everyMonthDays[objPre.everyMonthDays.length - 1];
}
},
lFirstDayInEveryYears: function (y) {
var _self = this;
var baseDate = new Date(1900, 0, 31).getTime(),
offset = Math.floor((new Date(y, 0, 1).getTime() - baseDate) / 86400000),
mOffset = 2;
if (y === 1900) {
offset = 0;
mOffset = 1;
}
else {
for (var i = 1900; i < y; i++) {
offset -= _self.daysInYear(i);
}
if (offset < 0) {
if ((_self.lunarTran(y).lunarData & 0x0000c) === 12) {
offset += (_self.daysInPreMonth(y, 0) + _self.daysInMonth(y - 1, 11));
}
else {
offset += _self.daysInPreMonth(y, 0);
offset < 0 ? offset += _self.daysInPreMonth(y - 1, 11) : mOffset = 1;
}
}
}
return {
thisYear: y,
offset: offset,
mOffset: mOffset
};
},
solarToLunar: function (y, m) {
var _self = this;
var offsetObj = _self.lFirstDayInEveryYears(y),
obj = _self.lunarTran(y),
monthDates = this.monthDates(y),
offset = offsetObj.offset;
if (y === 1900) {
for (var i = 0; i < m; i++) {
i < 1 ? offset += monthDates[i] - 30 : offset += monthDates[i] - obj.everyMonthDays[i - 1];
}
}
else {
var objPre = _self.lunarTran(y - 1);
for (var i = 0; i < m; i++) {
if (i < offsetObj.mOffset) {
offset += (monthDates[i] - objPre.everyMonthDays[objPre.everyMonthDays.length - 1 - i]);
}
else {
offset += (monthDates[i] - obj.everyMonthDays[i - offsetObj.mOffset]);
}
}
}
return [offset, offsetObj.mOffset];
},
sTermToDate: function (year, n) {
var offDate = new Date((31556925974.7 * (year - 1900) + this.sTermDate[n] * 60000)
+ Date.UTC(1900, 0, 6, 2, 5));
return (offDate.getUTCDate());
},
init() {
let start = new Date(1900, 0, 31)
for (let i = 0; i < 200; ++i) {
this.lunarYearOffset.push(new Date(start))
const calendar = this.lunarData[i]
const days = (12 + ((calendar & 0xf) > 0)) * 29 + countBits(calendar >> 4)
start.setDate(start.getDate() + days)
}
},
lunarDaysOfMonth(year, lmonth) {
return (this.monthData(year) & (1 << lmonth)) > 0 ? 30 : 29
},
lunarYearDays(year, lmonth) {
return countBits(this.monthData(year) & ((1 << lmonth) - 1)) + lmonth * 29
},
lunarDate(date) {
let year = date.getFullYear()
let base = this.lunarYearOffset[year - 1900]
if (date < base) {
year -= 1
base = this.lunarYearOffset[year - 1900]
}
let yearData = this.lunarData[year - 1900]
let ldate = (date - base) / (60 * 60 * 24 * 1000) | 0
let lmonth = (ldate / 30 | 0)
ldate -= this.lunarYearDays(year, lmonth)
let nextMonth = this.lunarDaysOfMonth(year, lmonth + 1)
if (ldate > nextMonth) {
ldate -= nextMonth
++lmonth
}
return { year, lmonth, ldate, leap: yearData & 0xf }
},
monthList(year) {
let yearData = this.lunarData[year - 1900]
let months = (yearData >> 4 | 0x1000).toString(2).split('')
.slice(1).reverse().map(x => +x + 29)
if ((yearData & 0xf) > 0) {
months.splice(yearData & 0xf, 0, yearData >> 16)
}
return months
},
monthData(year) {
const yearData = this.lunarData[year - 1900]
const leap = yearData & 0xf
if (leap === 0) {
return yearData >> 4
}
const mask = (1 << leap) - 1
return (yearData >> 4 & mask) |
(yearData >> 16 << leap) |
(yearData >> 4 + leap << leap + 1)
},
toDate(lunarDate) {
const year = lunarDate.year
let date = new Date(this.lunarYearOffset[year - 1900])
let days = lunarDate.ldate + date.getDate() +
this.lunarYearDays(year, lunarDate.lmonth)
date.setDate(days)
return date
},
test() {
this.init()
console.log(this.lunarYearOffset[0], this.lunarYearOffset[1])
console.log(this.thisTime());
console.log(this.lunarDate(new Date(2020, 7, 1)))
console.log(this.monthList(2020))
console.log(this.toDate(this.lunarDate(new Date(2020, 0, 24))))
console.log(this.isLeapYear(2100));
console.log(this.numToLunar(19));
console.log(this.lunarTran(2017));
console.log(this.daysInYear(1900));
console.log(this.sTermToDate(2018, 2));
this.solarToLunar(2017, 3);
this.solarToLunar(1900, 3);
console.log("本月1:" + this.daysInPreMonth(2017, 0));
console.log("本月2:" + this.daysInPreMonth(2017, 0) + "上个月1:" + this.daysInMonth(2016, 12));
}
};
calendar.test();
var thisTime = calendar.thisTime(),
rel, detailX, detailY,
year = thisTime[0],
month = thisTime[1],
today = thisTime[2],
weekNum = thisTime[3],
week = calendar.week,
monthDates = calendar.monthDates(year),
lMonthArr = calendar.lMonthArr;
var btn = $('<div class="calendarBtn">' +
'<span class="yBtn">-</span>' +
'<span class="mBtn">-</span>' +
'<div class="dcCalendarValues">' + year + '年' + (month + 1) + '月' + today + '日 <span>星期' + week[weekNum] + '</span></div>' +
'<span class="mBtn">+</span>' +
'<span class="yBtn">+</span>' +
'</div>');
obj.append(btn);
var table = $('<table class="calendarTable"><thead><tr><th>日</th><th>一</th><th>二</th><th>三</th><th>四</th><th>五</th><th>六</th></tr></thead>' +
'<tbody class="calendarTbody">' +
'<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>' +
'<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>' +
'<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>' +
'<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>' +
'<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>' +
'<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>' +
'</tbody></table>');
obj.append(table);
obj.append($('<div class="dcDateDetail"></div>'));
var $tBody = $('.calendarTbody'),
$dateDetail = $('.dcDateDetail'),
$CalendarValues = $('.dcCalendarValues');
var update = function () {
var firstDay = new Date(year, month, 1),
dayOfWeek = firstDay.getDay();
const lastDayOfPrevMonth = new Date(year, month, 0).getDate()
const lastDayOfMonth = new Date(year, month + 1, 0).getDate()
const lunarDate = calendar.lunarDate(firstDay)
const lunarDaysOfMonth = calendar.lunarDaysOfMonth(lunarDate.year, lunarDate.lmonth)
$tBody.find('td').each(function (rel) {
let $td = $(this).css({"color": "", "opacity": ""})
let date = rel - dayOfWeek + 1
if (date <= 0) {
date += lastDayOfPrevMonth
$td.html(date).css("opacity", "0.3");
} else if (date > lastDayOfMonth) {
date -= lastDayOfMonth
$td.html(date).css("opacity", "0.3");
} else {
let ldate = lunarDate.ldate + date - 1
if (ldate > lunarDaysOfMonth) {
ldate -= lunarDaysOfMonth
}
$td.html("<p class='solarValue'>" + date + "</p>"
+ "<p>" + calendar.numToLunar(ldate) + "</p>");
if (date === thisTime[2]) {
$td.css("color", "red");
}
}
})
$CalendarValues.html(year + '年' + (month + 1) + '月' + today + '日 <span class="weekAdapt">星期' + week[weekNum] + '</span>');
};
update();
$('.calendarBtn span').click(function () {
switch ($(this).index()) {
case 0: year -= 1; break;
case 1: {
month -= 1;
if (month < 0) { month = 11; year -= 1; }
break;
}
case 3: {
month += 1;
if (month > 11) { month = 0; year += 1; }
break;
}
case 4: year += 1; break;
}
update();
});
$tBody.mouseover(function () {
$dateDetail.css("display", "block");
});
$tBody.mouseout(function () {
$dateDetail.css("display", "none");
});
$tBody.find('td').each(function () {
$(this).mousemove(function (e) {
e = e || window.event;
detailX = e.pageX - $tBody.offset().left;
detailY = e.pageY - obj.offset().top;
$dateDetail.css({
left: (detailX + 30) + "px",
top: (detailY) + "px"
});
if ($(this).css("opacity") === "1") {
$CalendarValues.html(year + '年' + (month + 1) + '月' + $(this).children('.solarValue').html() + '日 <span class="weekAdapt">星期' + week[$(this).index() % 7] + '</span>');
$tBody.find('td').removeClass('calendarMouseMove');
$(this).addClass('calendarMouseMove');
var festivalDate;
var fm = month + 1,
dm = $(this).children('.solarValue').html();
fm < 10 ? fm = "0" + fm : fm;
dm < 10 ? dm = "0" + dm : dm;
if (calendar.festivalChinese[fm + dm] !== undefined) {
festivalDate = calendar.festivalChinese[fm + dm];
}
else {
festivalDate = "";
}
$dateDetail.html($CalendarValues.html() + "<p>" + festivalDate + "</p>");
}
});
});
if (obj.width() < 270) {
obj.css("font-size", "5px");
obj.find(".dcCalendarValues").find('span').css("display", "none");
}
}
};
dorseyUI = dorseyUI.fn.init.fn = dorseyUI.fn;
win.dorseyUI = dorseyUI;
})(window);
$(function () {
dorseyUI.dcCalendar($('.dcCalendarAddLunar'));
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>万年历(带农历)</title>
<style>
</style>
</head>
<body>
<div class="dc_calendar">
<div class="dcCalendarAddLunar" id="dcCalendar"></div>
</div>
</body>
</html>
html,
body,
div,
ol,
ul,
li,
p,
h1,
h2,
h3,
h4,
h5,
h6,
table,
tr,
td,
dt,
dd,
span,
img {
margin: 0;
padding: 0
}
ul,
li {
list-style: none
}
a {
text-decoration: none
}
.dc_left {
float: left
}
.dc_right {
float: right
}
.dc_pointer {
cursor: pointer
}
.dc_clear {
content: "";
display: block;
clear: both
}
.dc_mar_bottom {
margin-bottom: 20px
}
.dc_p_center {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto
}
.dc_c_red {
color: #f00
}
.dc_c_aaa {
color: #aaa
}
.dcCalendar {
width: 100%;
height: 100%;
min-height: 230px;
padding: 10px;
box-sizing: border-box;
position: relative;
box-shadow: -2px 2px 10px #fff;
-webkit-box-shadow: -2px 2px 10px #fff;
-moz-box-shadow: -2px 2px 10px #fff;
-o-box-shadow: -2px 2px 10px #fff
}
.dcCalendar .calendarBtn {
width: 100%;
height: 20%
}
.dcCalendar .calendarBtn .dcCalendarValues {
width: 50%;
height: 3em;
box-shadow: -2px 2px 10px #fff;
float: left;
font-size: 1em;
border-radius: 1.5em 1.5em 1.5em 1.5em;
text-align: center;
line-height: 3em
}
.dcCalendar .calendarBtn .mBtn,
.dcCalendar .calendarBtn .yBtn {
text-align: center;
float: left;
border-radius: 50% 50% 50% 50%;
font-size: 1em;
box-shadow: -1px 1px 2px #fff;
cursor: pointer;
margin: 0 .5%
}
.dcCalendar .calendarBtn .yBtn {
width: 13%;
height: 3em;
line-height: 3em
}
.dcCalendar .calendarBtn .mBtn {
width: 10%;
height: 2em;
line-height: 2em;
margin-top: .5em
}
.dcCalendar .calendarTable {
width: 100%;
height: 75%;
margin-top: 5%;
padding: 10px;
box-sizing: border-box;
text-align: center
}
.dcCalendar .calendarTable th {
text-align: center
}
.dcCalendar .calendarTable td {
cursor: pointer;
transition: .1s
}
.dcCalendar .dcDateDetail {
display: none;
width: 150px;
height: 80px;
font: 1em "Times New Roman";
padding: 5px;
position: absolute;
top: 0;
left: 0;
background: rgba(0, 0, 0, 0.9)
}
.dcCalendarAddLunar {
width: 100%;
height: 100%;
min-height: 230px;
padding: 10px 0;
box-sizing: border-box;
position: relative;
box-shadow: -2px 2px 10px #fff;
border-radius: 5px 5px 5px 5px;
}
.dcCalendarAddLunar .calendarBtn {
width: 100%;
padding: 0 2%;
box-sizing: border-box
}
.dcCalendarAddLunar .calendarBtn .dcCalendarValues {
width: 50%;
height: 3em;
float: left;
font-size: 1em;
text-align: center;
line-height: 3em
}
.dcCalendarAddLunar .calendarBtn .mBtn,
.dcCalendarAddLunar .calendarBtn .yBtn {
text-align: center;
float: left;
border-radius: 50% 50% 50% 50%;
-webkit-border-radius: 50% 50% 50% 50%;
-moz-border-radius: 50% 50% 50% 50%;
font-size: 1em;
box-shadow: -1px 1px 2px #fff;
-webkit-box-shadow: -1px 1px 2px #fff;
-moz-box-shadow: -1px 1px 2px #fff;
-o-box-shadow: -1px 1px 2px #fff;
cursor: pointer;
margin: 0 .5%
}
.dcCalendarAddLunar .calendarBtn .yBtn {
width: 13%;
height: 3em;
line-height: 3em
}
.dcCalendarAddLunar .calendarBtn .mBtn {
width: 10%;
height: 2em;
line-height: 2em;
margin-top: .5em
}
.dcCalendarAddLunar .calendarBtn:after {
content: "";
display: block;
clear: both
}
.dcCalendarAddLunar .calendarTable {
width: 100%;
margin-top: 10px;
padding: 10px;
box-sizing: border-box;
text-align: center
}
.dcCalendarAddLunar .calendarTable th {
text-align: center
}
.dcCalendarAddLunar .calendarTable td {
cursor: pointer;
transition: .1s;
padding: 5px 0
}
.dcCalendarAddLunar .calendarTable td p {
font-size: .3rem
}
.dcCalendarAddLunar .calendarTable td .solarValue {
font-size: 20px
}
.dcCalendarAddLunar .calendarTable td .lMonth {
display: none
}
.dcCalendarAddLunar .dcDateDetail {
display: none;
width: 150px;
height: 80px;
font: 1em "Times New Roman";
padding: 5px;
position: absolute;
top: 0;
left: 0;
background: rgba(0, 0, 0, 0.9)
}
.calendarMouseMove {
box-shadow: -1px 1px 5px #fff;
-webkit-box-shadow: -1px 1px 5px #fff;
-moz-box-shadow: -1px 1px 5px #fff;
-o-box-shadow: -1px 1px 5px #fff;
transform: translate3d(2px, -2px, 0)
}
.dcCalendar:after {
content: "";
display: block;
clear: both
}
.dcAccordion {
background: linear-gradient(#1d1d1d, #35ff10);
width: 100%;
text-align: center;
font: 18px "华文楷体";
line-height: 40px
}
.dcAccordion a {
width: 100%;
display: inline-block;
color: #fff
}
.dcAccordion li ul {
font: 12px "微软雅黑";
line-height: 30px;
height: 0;
overflow: hidden;
background: rgba(255, 255, 255, 0.2);
transition: all .3s
}
.dcAccordion a:hover {
background: rgba(255, 255, 255, 0.3)
}
.dcAccordionAddAnimate {
background: linear-gradient(#1d1d1d, #35ff10);
width: 100%;
text-align: center;
font: 18px "华文楷体";
line-height: 40px
}
.dcAccordionAddAnimate a {
width: 100%;
display: inline-block;
color: #fff
}
.dcAccordionAddAnimate li ul {
font: 12px "微软雅黑";
line-height: 30px;
height: 0;
overflow: hidden;
background: rgba(255, 255, 255, 0.2);
transition: all .3s
}
.dcAccordionAddAnimate a:hover {
background: rgba(255, 255, 255, 0.3)
}
body {
background: linear-gradient(to left, #56655f, #000000);
}
.dc_calendar {
width: 450px;
height: 450px;
margin: 50px auto 0;
color: #ccc;
}