var tools = (function () {
var toolsObj = {
// 渲染弹出框
renderPopup: function (festival, obj, str) {
var title = obj.querySelector('.title')
var date = obj.querySelector('.date')
var lunar = obj.querySelector('.lunar')
var dateFormat = tools.strFormatDate(str)
var lunarObj = ChineseCalendar.date2lunar(dateFormat);
console.log(dateFormat)
title.innerHTML = festival.innerHTML
date.innerHTML = dateFormat.getFullYear() + '年' + (dateFormat.getMonth() + 1) + '月' + dateFormat.getDate() + '日'
lunar.innerHTML = lunarObj.lunarMonthChiness + lunarObj.lunarDayChiness + ' · ' + lunarObj.gzY + '年' + lunarObj.gzM + '月' + lunarObj.gzD + '日'
},
// 侧边栏及全年月份数据返回
renderDay: function (year, n) {
var year = year
var month = n
var firstDay = new Date(year, n, 1) // 月份列表第一天
var _hmtl = ``
for (var i = 0; i < 42; i++) {
var allDay = new Date(year, month, i + 1 - firstDay.getDay());
var allDay_str = tools.returnDateStr(allDay)
var firstDay_str = tools.returnDateStr(firstDay)
var first_lunarday = ChineseCalendar.date2lunar(allDay).lunarDayChiness
var lunarJanuary_month = ChineseCalendar.date2lunar(allDay).lunarMonthChiness // 正月
if (tools.returnDateStr(new Date()) === allDay_str) { // 当天
if (first_lunarday == '初一') { // 区分初一那天
if (lunarJanuary_month == '正月') { // 区分春节那天
_hmtl += `
${allDay.getDate()}`
} else {
_hmtl += `${allDay.getDate()}`
}
} else {
_hmtl += `${allDay.getDate()}`
}
} else if (firstDay_str.substr(0, 6) === allDay_str.substr(0, 6)) { // 当前月份
if (first_lunarday == '初一') {
if (lunarJanuary_month == '正月') {
_hmtl += `${allDay.getDate()}`
} else {
_hmtl += `${allDay.getDate()}`
}
} else {
_hmtl += `${allDay.getDate()}`
}
} else {
if (first_lunarday == '初一') {
if (lunarJanuary_month == '正月') {
_hmtl += `${allDay.getDate()}`
} else {
_hmtl += `${allDay.getDate()}`
}
} else {
_hmtl += `${allDay.getDate()}`
}
}
}
return _hmtl
},
// 月份详情
renderDetailMonth: function (dayWrapper, recivedYear, recivedMonth) {
var array = []
var recivedDate = new Date()
var _html = ``
var date = new Date(recivedYear, recivedMonth, 1)
date.setDate(1)
var week = date.getDay()
date.setDate(1 - week)
var month = date.getMonth()
for (var i = 0; i < 42; i++) {
if (month !== recivedMonth) {
if (date.getDay() === 0 || date.getDay() === 6) {
array.push({
day: date.getDate(),
lunar: ChineseCalendar.lunarTime(date),
state: 'weekend',
festival: ChineseCalendar.lunarFestival(date),
term: ChineseCalendar.lunarTerm(date),
dateStr: tools.returnDateStr(date)
})
} else {
array.push({
day: date.getDate(),
lunar: ChineseCalendar.lunarTime(date),
state: '',
festival: ChineseCalendar.lunarFestival(date),
term: ChineseCalendar.lunarTerm(date),
dateStr: tools.returnDateStr(date)
})
}
} else if(tools.curDay(date, recivedDate)) {
if (date.getDay() === 0 || date.getDay() === 6) {
array.push({
day: date.getDate(),
lunar: ChineseCalendar.lunarTime(date),
state: 'weekend cur-day',
festival: ChineseCalendar.lunarFestival(date),
term: ChineseCalendar.lunarTerm(date),
dateStr: tools.returnDateStr(date)
})
} else {
array.push({
day: date.getDate(),
lunar: ChineseCalendar.lunarTime(date),
state: 'cur-day',
festival: ChineseCalendar.lunarFestival(date),
term: ChineseCalendar.lunarTerm(date),
dateStr: tools.returnDateStr(date)
})
}
} else {
if (date.getDay() === 0 || date.getDay() === 6) {
array.push({
day: date.getDate(),
lunar: ChineseCalendar.lunarTime(date),
state: 'weekend cur-month',
festival: ChineseCalendar.lunarFestival(date),
term: ChineseCalendar.lunarTerm(date),
dateStr: tools.returnDateStr(date)
})
} else {
array.push({
day: date.getDate(),
lunar: ChineseCalendar.lunarTime(date),
state: 'cur-month',
festival: ChineseCalendar.lunarFestival(date),
term: ChineseCalendar.lunarTerm(date),
dateStr: tools.returnDateStr(date)
})
}
}
date.setDate(date.getDate() + 1)
month = date.getMonth()
}
for (var j = 0; j < array.length; j++) {
var festival_state = array[j].festival ? 'festival show' : 'festival'
var term_state = array[j].term ? 'term show' : 'term'
var first_lunarday = array[j].lunar == '初一' ?
ChineseCalendar.date2lunar(date).lunarMonthChiness + array[j].lunar:
array[j].lunar
if (array[j].lunar == '初一') {
if (ChineseCalendar.date2lunar(date).lunarMonthChiness == '正月') {
var lunar_state = 'lunar first-lunarJanuary'
} else {
var lunar_state = 'lunar first-lunarday'
}
} else {
var lunar_state = 'lunar'
}
_html += `
${first_lunarday}
${array[j].day}日
${array[j].festival}
${array[j].term}
`
}
dayWrapper.innerHTML = _html
},
nowDate: function () {
return new Date()
},
returnDateStr: function (date) {
var year = date.getFullYear();
var month = date.getMonth();
var day = date.getDate();
month = month <= 9 ? ('0' + month) : ('' + month);
day = day <= 9 ? ('0' + day) : ('' + day);
return year + month + day;
},
// 是否是当天
curDay: function (oldTime, nowTime) {
return oldTime.getFullYear() === nowTime.getFullYear() &&
oldTime.getMonth() === nowTime.getMonth() &&
oldTime.getDate() === nowTime.getDate()
},
// 格式化日期 (如果这里传入的是字符串,那么得到的值不会按照下标去算)
strFormatDate: function (str) {
var date = new Date(parseInt(str.substr(0, 4)), parseInt(str.substr(4, 2)), parseInt(str.substr(6)))
console.log(str)
return date
}
}
return toolsObj
}())