diff --git a/app/calendar/css/style.css b/app/calendar/css/style.css new file mode 100644 index 0000000..5d5f574 --- /dev/null +++ b/app/calendar/css/style.css @@ -0,0 +1 @@ +*{margin:0;padding:0;font-style:normal}ul,li{list-style:none}body{font-family:pingfang sc,helvetica neue,helvetica,microsoft yahei,arial,sans-serif;font-size:14px;color:#333}h2{font-weight:400}body{overflow:hidden;width:100%;background-size:cover;background-color:#313131}#calendar{width:910px;margin:0 auto;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#calendar .header{position:relative;width:100%;height:37px;border-bottom:1px solid #b4b2b3;background-color:#e7e5e7;border-top-left-radius:5px;border-top-right-radius:5px}#calendar .header ul{position:absolute;left:420px;top:8px;overflow:hidden;border-radius:3px;font-size:0}#calendar .header ul li{display:inline-block;width:62px;height:24px;line-height:24px;font-size:14px;text-align:center;background-color:#fff;cursor:default}#calendar .header ul li.cur{color:#fff;background-color:#6f6e6f}#calendar .sidebar{float:left;width:167px;height:609px;border-right:1px solid #d4dad3;background-color:rgba(255,255,255,.9)}#calendar .sidebar .wrapper{width:100%;padding:12px 0;border-bottom:1px solid #c8d6c7}#calendar .sidebar .title{position:relative;text-align:center}#calendar .sidebar .btn{padding:0 10px;position:absolute;cursor:default}#calendar .sidebar .btn-prev{left:8px}#calendar .sidebar .btn-next{right:8px}#calendar .sidebar .date{}#calendar .sidebar .week{height:20px;padding-top:10px;line-height:20px;font-size:0;text-align:center}#calendar .sidebar .week li{display:inline-block;font-size:12px;width:22px;height:20px;text-align:center}#calendar .sidebar .day{text-align:center;font-size:0}#calendar .sidebar .day li{display:inline-block;width:18px;height:18px;margin:2px;line-height:18px;font-size:12px;text-align:center;color:#ccc;cursor:default}#calendar .sidebar .day li.cur-month{color:#333}#calendar .sidebar .day li.cur-day{color:#fff;background-color:#ff6d6d;border-radius:50%}#calendar .container{position:relative;float:left;width:742px;height:604px;background-color:#fff}#calendar .container .render{display:none}#calendar .container .render-show{display:block}#renderMonth{padding-top:5px}#renderMonth .title{padding-left:16px;line-height:42px;font-size:30px}#renderMonth .week{height:33px;line-height:33px;border-bottom:1px solid #c8c6cc;font-size:0}#renderMonth .week li{position:relative;right:12px;display:inline-block;width:106px;font-size:18px;text-align:right}#renderMonth .day{font-size:0}#renderMonth .day li{display:inline-block;width:106px;height:88px;padding:6px;border-right:1px solid #e6e5e6;border-bottom:1px solid #e6e5e6;box-sizing:border-box;font-size:14px;vertical-align:top;color:#ccc;background-color:#fff}#renderMonth .day li.cur-month{color:#333}#renderMonth .day li.cur-day{color:#333}#renderMonth .day li.weekend{background-color:#f4f6f7}#renderMonth .day li p{margin-bottom:8px}#renderMonth .day li .info{height:20px}#renderMonth .day li .lunar{float:left}#renderMonth .day li .first-lunarday{position:relative;left:-5px;border-bottom:1px solid #ff6d6d}#renderMonth .day li .first-lunarJanuary{position:relative;left:-5px;border-bottom:2px solid #ff6d6d}#renderMonth .day li .date{float:right}#renderMonth .day li.cur-day .date{}#renderMonth .day li.cur-day .date em{display:inline-block;width:20px;height:20px;line-height:20px;margin-right:2px;text-align:center;color:#fff;background-color:#ff6d6d;border-radius:50%}#renderMonth .day li .festival{display:none;padding-left:10px;height:16px;line-height:16px;color:#333;background-color:#f9d8f8;cursor:default}#renderMonth .day li .festival.show{display:block}#renderMonth .day li .term{display:none;color:#333;height:16px;line-height:16px;padding-left:10px;background-color:#a7d1ed;cursor:default}#renderMonth .day li .term.show{display:block}#renderFullYear{padding-top:5px}#renderFullYear>.title{width:617px;height:42px;padding:0 0 10px 16px}#renderFullYear>.title h2{display:inline-block;line-height:42px;font-size:30px}#renderFullYear>.title p{float:right;margin-top:10px;margin-right:15px}#renderFullYear>.title .lunar-year{}#renderFullYear>.title .lunar-year i{display:inline-block;margin:9px 6px 0 0;width:16px;height:3px;background-color:#ff6d6d;vertical-align:top}#renderFullYear>.title .info{}#renderFullYear>.title .info i{display:inline-block;width:14px;height:1px;margin-top:-3px;margin-right:5px;background-color:#ff6d6d;vertical-align:middle}#renderFullYear .month{font-size:0}#renderFullYear .month .item{display:inline-block;width:25%;padding:0 10px;box-sizing:border-box}#renderFullYear .month .title{padding-left:8px;font-size:18px;color:#ff6d6d}#renderFullYear .month .week{font-size:0;text-align:center}#renderFullYear .month .week li{display:inline-block;width:22px;height:20px;line-height:20px;font-size:12px;color:#ccc}#renderFullYear .month .day{text-align:center;font-size:0}#renderFullYear .month .day li{display:inline-block;width:18px;height:18px;line-height:18px;margin:2px;text-align:center;color:#ccc;font-size:10px;cursor:default}#renderFullYear .month .day li.lunar-first{border-bottom:1px solid #ff6d6d}#renderFullYear .month .day li.lunar-january{border-bottom:2px solid #ff6d6d}#renderFullYear .month .day li.cur-month{color:#333}#renderFullYear .month .day li.cur-day{color:#fff;background-color:#ff6d6d;border-radius:50%}#control{position:absolute;top:16px;right:14px;font-size:0}#control input{display:inline-block;height:19px;text-align:center;border:1px solid #dadada;border-radius:4px;font-size:14px;color:#333;background:#fff;vertical-align:top;outline:0}#control .btn{width:21px}#control .btn-prev{}#control .btn-next{}#control .today{width:52px}#popup{display:none;position:absolute;left:200px;top:100px;width:260px;height:104px;background-color:#f4f6f7;box-shadow:0 0 2px rgba(0,0,0,.3);border-radius:6px;border:1px solid #efefef}#popup.popup-right{}#popup .title{height:43px;padding:0 15px;line-height:43px;margin-bottom:8px;border-bottom:1px solid #d6d6d6}#popup .arrow{display:none;position:absolute;top:36px;width:0;height:0;border-width:14px;border-style:solid}#popup .arrow:after{content:"";position:absolute;top:-14px;width:0;height:0;border-width:14px;border-style:dashed}#popup .arrow-left{left:-29px;border-color:transparent #d6d6d6 transparent transparent}#popup.popup-left .arrow-left{display:block}#popup .arrow-left:after{left:-13px;border-color:transparent #f4f6f7 transparent transparent}#popup .arrow-right{right:-29px;border-color:transparent transparent transparent #d6d6d6}#popup.popup-right .arrow-right{display:block}#popup .arrow-right:after{right:-13px;border-color:transparent transparent transparent #f4f6f7}#popup .date,#popup .lunar{padding:0 15px;line-height:20px} \ No newline at end of file diff --git a/app/calendar/index.html b/app/calendar/index.html new file mode 100644 index 0000000..60bdc2e --- /dev/null +++ b/app/calendar/index.html @@ -0,0 +1,77 @@ + + + + +Document + + + +
+
+ +
+ +
+
+

2017年9月

+
    +
  • 周日
  • +
  • 周一
  • +
  • 周二
  • +
  • 周三
  • +
  • 周四
  • +
  • 周五
  • +
  • 周六
  • +
+
    +
    +
    +
    +

    2017年

    +

    +丁酉鸡年 +农历初一 +

    +
    +
      +
      +
      + + + +
      + +
      +
      + + + + + \ No newline at end of file diff --git a/app/calendar/js/calender.js b/app/calendar/js/calender.js new file mode 100644 index 0000000..0fa8172 --- /dev/null +++ b/app/calendar/js/calender.js @@ -0,0 +1,94 @@ +;(function(window,undefined){var calendar=document.querySelector('#calendar') +var simpleMonth_area=calendar.querySelector('.sidebar') +var simpleMonth_title=simpleMonth_area.querySelector('.date') +var fullMonth_area=calendar.querySelector('#renderFullYear') +var fullMonth_title=fullMonth_area.querySelector('h2') +var fullMonth_lunar=fullMonth_area.querySelector('.lunar-year') +var detailMonth=calendar.querySelector('#renderMonth') +var detailMonth_title=detailMonth.querySelector('.title') +var detailMonth_day=detailMonth.querySelector('.day') +var tab_num=0 +var today=new Date() +var year=today.getFullYear() +var month=today.getMonth() +var calendarObj=ChineseCalendar +renderTab() +initalToday() +function renderTab(){var aTab=calendar.querySelector('.header').querySelectorAll('li') +var aRender=calendar.querySelectorAll('.render') +for(var i=0;i +
      ${monthArr[i]}
      + + + `} +fullYear_month.innerHTML=fullMonth_hmtl +sidebar_day.innerHTML=tools.renderDay(year,month)} +function dateEvent(){var sidebar_prevBtn=simpleMonth_area.querySelector('.btn-prev') +var sidebar_nextBtn=simpleMonth_area.querySelector('.btn-next') +var control=calendar.querySelector('#control') +var control_btnPrev=control.querySelector('.btn-prev') +var control_today=control.querySelector('.today') +var control_btnNext=control.querySelector('.btn-next') +var sidebar_date=simpleMonth_area.querySelectorAll('.day li') +var detail_festival=detailMonth_day.querySelectorAll('.show') +var popup=calendar.querySelector('#popup') +var container=calendar.querySelector('.container') +var dataTime=null +var popupPos={lx:0,lr:0,y:0,w:detail_festival[0].offsetWidth,h:detail_festival[0].offsetHeight} +sidebar_prevBtn.onclick=function(){if(month==0){year-- +month=11}else{month--} +initalToday()} +sidebar_nextBtn.onclick=function(){if(month==11){year++ +month=0}else{month++} +initalToday()} +control_today.onclick=function(){year=today.getFullYear() +month=today.getMonth() +initalToday()} +control_btnPrev.onclick=function(){if(tab_num==0){if(month==0){year-- +month=11}else{month--} +tools.renderDetailMonth(detailMonth_day,year,month)}else{year--} +initalToday()} +control_btnNext.onclick=function(){if(tab_num==0){if(month==11){year++ +month=0}else{month++}}else{year++} +initalToday()} +for(var i=0;i=popup.offsetWidth){popup.style.left=popupPos.lx+'px' +popup.className='popup-left'}else{popup.style.left=popupPos.lr+'px' +popup.className='popup-right'} +tools.renderPopup(this,popup,dateStr) +ev.stopPropagation()}} +document.onclick=function(){popup.style.display='none'}}})(window) \ No newline at end of file diff --git a/app/calendar/js/chinesecalendar.js b/app/calendar/js/chinesecalendar.js new file mode 100644 index 0000000..ab06f75 --- /dev/null +++ b/app/calendar/js/chinesecalendar.js @@ -0,0 +1,26 @@ +var ChineseCalendar={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,0x04afb,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],Gan:["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"],Zhe:["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"],Animals:["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"],solarTerm:["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"],weekend:['日','一','二','三','四','五','六','七','八','九','十'],lunarStr:['初','十','廿','卅'],lunarMonStr:['正','二','三','四','五','六','七','八','九','十','冬','腊'],sTermInfo:[0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758],wFestive:['0520-母亲节','0630-父亲节','1144-感恩节'],cFestive:['0101-元旦','0214-情人节','0305#1963-雷锋日','0308-妇女节','0312-植树节','0401-愚人节','0501-劳动日','0504-青年节','0512-护士节','0601#1925-儿童节','0701#1997-建党节','0801#1927-建军节','0910-教师节','1001#1949-国庆节','1224-平安夜','1225-圣诞节',],lFestive:['1230-除夕','0101-春节','0102-正月初二','0115-元宵节','0505-端午节','0707-七夕节','0715-中元节','0815-中秋节','0909-重阳节','1208-腊八节','1224-小年'],lunarYearLength:function(y){var sum=12*29;for(var i=0x8000;i>0x8;i=i>>1){sum+=(ChineseCalendar.lunarInfo[y-1900]&i?1:0);} +sum+=ChineseCalendar.leapMonthLengths(y);return sum;},lunarMonthLength:function(y,m){return ChineseCalendar.lunarInfo[y-1900]&(0x10000>>m)?30:29;},isLeapMonth:function(y){return ChineseCalendar.lunarInfo[y-1900]&0xf?true:false;},leapMonth:function(y){if(ChineseCalendar.isLeapMonth(y)){return ChineseCalendar.lunarInfo[y-1900]&0xf;} +return 0;},leapMonthLengths:function(y){if(ChineseCalendar.isLeapMonth(y)){return ChineseCalendar.lunarInfo[y-1900]&0x10000?30:29;} +return 0;},year2GanZhe:function(y){var gan=(y-3)%10;if(gan===0){gan=10;} +var zhe=(y-3)%12;if(zhe===0){zhe=12;} +return ChineseCalendar.Gan[gan-1]+ChineseCalendar.Zhe[zhe-1];},month2GanZhe:function(y,m){var ganY=(y-3)%10;if(ganY===0){ganY=10;} +var month=((ganY-1)%5)*12+m+1;return ChineseCalendar.Gan[month%10]+ChineseCalendar.Zhe[month%12];},day2GanZhe:function(offset){var temp=40+offset;return ChineseCalendar.Gan[temp%10]+ChineseCalendar.Zhe[temp%12];},sTerm:function(y,n){var ms=31556925974.7*(y-1900)+ChineseCalendar.sTermInfo[n]*60000;var base=Date.UTC(1900,0,6,2,5);var date=new Date(ms+base);return date;},isTerm:function(y,m,d){var date=new Date(y,m-1,d);var n=(m-1)*2;var dateTerm=ChineseCalendar.sTerm(y,n);if(ChineseCalendar.isSameDay(dateTerm,date)){return ChineseCalendar.solarTerm[n];} +n=n+1;dateTerm=ChineseCalendar.sTerm(y,n);if(ChineseCalendar.isSameDay(dateTerm,date)){return ChineseCalendar.solarTerm[n];} +return false;},isSameDay:function(date1,date2){return date1.getFullYear()===date2.getFullYear()&&date1.getMonth()===date2.getMonth()&&date1.getDate()===date2.getDate();},getStar:function(month,day){var start=['魔羯','水瓶','双鱼','白羊','金牛','双子','巨蟹','狮子','处女','天秤','天蝎','射手','魔羯'],limit=[20,19,21,21,21,22,23,23,23,23,22,22],result=(month-1)+(day>limit[month-1]?1:0);return start[result]+'座';},toLunarMonth:function(m,flag){if(flag){return '闰'+ChineseCalendar.lunarMonStr[m-1]+'月';} +return ChineseCalendar.lunarMonStr[m-1]+'月';},toLunarDay:function(d){if(d===10){return '初十';} +return ChineseCalendar.lunarStr[Math.floor(d/10)]+(d%10===0?'十':ChineseCalendar.weekend[d%10]);},getAnimal:function(y){return ChineseCalendar.Animals[(y-4)%12];},isTody:function(date){var now=new Date();return date.getFullYear()===now.getFullYear()&&date.getMonth()===now.getMonth()&&date.getDate()===now.getDate();},isFestive:function(y,m,d,ly,lm,ld){var lstr=lm>9?(lm+''):'0'+lm;lstr+=ld>9?(ld+''):'0'+ld;var cstr=m>9?(m+''):'0'+m;cstr+=d>9?(d+''):'0'+d;var festive=ChineseCalendar.lFestive;for(var i=0,l=festive.length;iyear[1]){if(year[0]===cstr){return test[2];}}else if(!year[1]){if(test[1]===cstr){return test[2];}}} +festive=ChineseCalendar.wFestive;var date=new Date(y,m-1,d);for(var i=0,l=festive.length;i9?(m+''):'0'+m;if(str===month&&date.getDay()===parseInt(day)){var temp=ChineseCalendar.theNoWeek(y,m,d);if(temp===parseInt(nWeek)){return test[2];}}} +return false;},theNoWeek:function(y,m,d){var first=new Date(y,m-1,d);first.setDate(1);var date=new Date(y,m-1,d);var day=first.getDay(),current=date.getDate();if(day===0){day=7;} +var head=1,tail=8-day,result=1;while(1){if(current>=head&¤t<=tail){return result;} +result+=1;head=tail+1;tail=head+6;}},isRunYear:function(year){return year%400===0||(year%4===0&&year%100!==0);},getlunarYMD:function(date){var result={year:date.getFullYear(),month:date.getMonth()+1,day:date.getDate()};var offset=(Date.UTC(result.year,result.month-1,result.day)-Date.UTC(1900,0,31))/(60*60*24*1000),temp=0;for(var i=1900;i<2101&&offset>0;i++){temp=ChineseCalendar.lunarYearLength(i);offset-=temp;} +if(offset<0){offset+=temp;i--;} +result.lunarYear=i;var isLear=false,lunarMonth=ChineseCalendar.leapMonth(result.lunarYear);for(var i=1;i<13&&offset>=0;i++){temp=ChineseCalendar.lunarMonthLength(result.lunarYear,i);offset-=temp;isLear=false;if(i===lunarMonth){if(offset<0){i--;isLear=true;}else{temp=ChineseCalendar.leapMonthLengths(result.lunarYear);offset-=temp;}}} +if(offset<0){if(i===lunarMonth&&isLear){offset+=temp;isLear=false;}else if(i===(lunarMonth+1)){offset+=temp;isLear=true;i--;}else{offset+=temp;i--;}} +result.lunarMonth=i;result.lunarMonthChiness=ChineseCalendar.toLunarMonth(result.lunarMonth,isLear);result.lunarDay=offset+1;result.lunarDayChiness=ChineseCalendar.toLunarDay(result.lunarDay);return result;},lunarFestival:function(date){var result=ChineseCalendar.getlunarYMD(date);var festive=ChineseCalendar.isFestive(result.year,result.month,result.day,result.lunarYear,result.lunarMonth,result.lunarDay);var term=ChineseCalendar.isTerm(result.year,result.month,result.day);if(festive){return festive}},lunarTerm:function(date){var result=ChineseCalendar.getlunarYMD(date);var term=ChineseCalendar.isTerm(result.year,result.month,result.day);if(term){return term}},lunarTime:function(date){var result=ChineseCalendar.getlunarYMD(date);return result.lunarDayChiness;},date2lunar:function(date){date=date||new Date();var result={year:date.getFullYear(),month:date.getMonth()+1,day:date.getDate()};var offset=(Date.UTC(result.year,result.month-1,result.day)-Date.UTC(1900,0,31))/(60*60*24*1000),temp=0;result.gzD=ChineseCalendar.day2GanZhe(offset);for(var i=1900;i<2101&&offset>0;i++){temp=ChineseCalendar.lunarYearLength(i);offset-=temp;} +if(offset<0){offset+=temp;i--;} +result.lunarYear=i;var isLear=false,lunarMonth=ChineseCalendar.leapMonth(result.lunarYear);for(var i=1;i<13&&offset>=0;i++){temp=ChineseCalendar.lunarMonthLength(result.lunarYear,i);offset-=temp;isLear=false;if(i===lunarMonth){if(offset<0){i--;isLear=true;}else{temp=ChineseCalendar.leapMonthLengths(result.lunarYear);offset-=temp;}}} +if(offset<0){if(i===lunarMonth&&isLear){offset+=temp;isLear=false;}else if(i===(lunarMonth+1)){offset+=temp;isLear=true;i--;}else{offset+=temp;i--;}} +result.lunarMonth=i;result.lunarMonthChiness=ChineseCalendar.toLunarMonth(result.lunarMonth,isLear);result.lunarDay=offset+1;result.lunarDayChiness=ChineseCalendar.toLunarDay(result.lunarDay);result.animal=ChineseCalendar.getAnimal(result.year);result.week="星期"+ChineseCalendar.weekend[date.getDay()];result.start=ChineseCalendar.getStar(result.month,result.day);result.gzY=ChineseCalendar.year2GanZhe(result.lunarYear);result.isTody=ChineseCalendar.isTody(date);result.gzM=ChineseCalendar.month2GanZhe(result.lunarYear,result.lunarMonth);result.isTerm=ChineseCalendar.isTerm(result.year,result.month,result.day);if(result.isTerm){result.term=result.isTerm;result.isTerm=true;} +result.isFestive=ChineseCalendar.isFestive(result.year,result.month,result.day,result.lunarYear,result.lunarMonth,result.lunarDay);if(result.isFestive){result.festive=result.isFestive;result.isFestive=true;} +return result;}} \ No newline at end of file diff --git a/app/calendar/js/tools.js b/app/calendar/js/tools.js new file mode 100644 index 0000000..1317d11 --- /dev/null +++ b/app/calendar/js/tools.js @@ -0,0 +1,43 @@ +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(),first_lunarday:ChineseCalendar.lunarTime(date),lunar:ChineseCalendar.date2lunar(date).lunarMonthChiness,state:'weekend',festival:ChineseCalendar.lunarFestival(date),term:ChineseCalendar.lunarTerm(date),dateStr:tools.returnDateStr(date)})}else{array.push({day:date.getDate(),first_lunarday:ChineseCalendar.lunarTime(date),lunar:ChineseCalendar.date2lunar(date).lunarMonthChiness,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(),first_lunarday:ChineseCalendar.lunarTime(date),lunar:ChineseCalendar.date2lunar(date).lunarMonthChiness,state:'weekend cur-day',festival:ChineseCalendar.lunarFestival(date),term:ChineseCalendar.lunarTerm(date),dateStr:tools.returnDateStr(date)})}else{array.push({day:date.getDate(),first_lunarday:ChineseCalendar.lunarTime(date),lunar:ChineseCalendar.date2lunar(date).lunarMonthChiness,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(),first_lunarday:ChineseCalendar.lunarTime(date),lunar:ChineseCalendar.date2lunar(date).lunarMonthChiness,state:'weekend cur-month',festival:ChineseCalendar.lunarFestival(date),term:ChineseCalendar.lunarTerm(date),dateStr:tools.returnDateStr(date)})}else{array.push({day:date.getDate(),first_lunarday:ChineseCalendar.lunarTime(date),lunar:ChineseCalendar.date2lunar(date).lunarMonthChiness,state:'cur-month',festival:ChineseCalendar.lunarFestival(date),term:ChineseCalendar.lunarTerm(date),dateStr:tools.returnDateStr(date)})}} +date.setDate(date.getDate()+1) +month=date.getMonth()} +console.log(array);for(var j=0;j +

      + ${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()+1;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}()) \ No newline at end of file diff --git a/demo.html b/demo.html index 3a162e3..49f1da3 100644 --- a/demo.html +++ b/demo.html @@ -74,6 +74,11 @@
      GameCenter
      +
      + +
      Calendar
      +
      +
      iCloud
      diff --git a/img/icon/calendar.png b/img/icon/calendar.png new file mode 100644 index 0000000..f9e1064 Binary files /dev/null and b/img/icon/calendar.png differ