├── README.md ├── calendar.html ├── css ├── calendar.css └── reset.css ├── dist ├── calendar.html ├── css │ ├── calendar.css │ ├── calendar.min.css │ ├── reset.css │ └── reset.min.css ├── img │ ├── bk_polyicon.png │ ├── bk_polyicon1.gif │ ├── favicon.ico │ ├── favicon.png │ ├── icons_0e814c16.png │ ├── icons_5c448026.gif │ ├── layericon.gif │ ├── layericon.png │ ├── tip-arrow-bottom.png │ ├── tip-arrow-top.png │ ├── tip-bottom.png │ ├── tip-left-bottom.png │ ├── tip-left-top.png │ ├── tip-left.png │ ├── tip-right-bottom.png │ ├── tip-right-top.png │ ├── tip-right.png │ ├── tip-top.png │ └── toplist_dot.png ├── js │ ├── calendar.js │ └── calendar.min.js └── lib │ ├── hl2008.js │ ├── hl2009.js │ ├── hl2010.js │ ├── hl2011.js │ ├── hl2012.js │ ├── hl2013.js │ ├── hl2014.js │ ├── hl2015.js │ ├── hl2016.js │ ├── hl2017.js │ ├── hl2018.js │ ├── hl2019.js │ ├── hl2020.js │ ├── wt2014.js │ ├── wt2015.js │ └── wt2016.js ├── doc ├── html │ ├── css │ │ ├── base.lib.min.css │ │ ├── layout.min.css │ │ ├── mdeditor.lib.min.css │ │ └── prettify-cmd.css │ ├── img │ │ ├── app.gif │ │ ├── calendar_api.png │ │ ├── console_show.png │ │ ├── construct.png │ │ ├── default-head.jpg │ │ ├── dom_api.png │ │ ├── favicon.png │ │ └── main.gif │ └── index.html ├── pdf │ └── index.pdf └── readme.txt ├── gulpfile.js ├── img ├── bk_polyicon.png ├── bk_polyicon1.gif ├── favicon.ico ├── favicon.png ├── icons_0e814c16.png ├── icons_5c448026.gif ├── layericon.gif ├── layericon.png ├── tip-arrow-bottom.png ├── tip-arrow-top.png ├── tip-bottom.png ├── tip-left-bottom.png ├── tip-left-top.png ├── tip-left.png ├── tip-right-bottom.png ├── tip-right-top.png ├── tip-right.png ├── tip-top.png └── toplist_dot.png ├── install └── setup.exe ├── js ├── calendar.js ├── common.js ├── dom.js ├── event.js └── main.js ├── lib ├── hl2008.js ├── hl2009.js ├── hl2010.js ├── hl2011.js ├── hl2012.js ├── hl2013.js ├── hl2014.js ├── hl2015.js ├── hl2016.js ├── hl2017.js ├── hl2018.js ├── hl2019.js ├── hl2020.js ├── wt2014.js ├── wt2015.js └── wt2016.js └── package.json /README.md: -------------------------------------------------------------------------------- 1 | # ![图标](https://raw.githubusercontent.com/mircode/calender/master/doc/html/img/favicon.png)万年历 Calender 2 | 3 | ------ 4 | 5 | ## 一、摘要 6 | 7 | - [万年历 Calender](#万年历-calender) 8 | - [一、摘要](#一摘要) 9 | - [二、简介](#二简介) 10 | - [三、开发流程](#三开发流程) 11 | - [四、主要模块](#四主要模块) 12 | - [五、目录结构](#五目录结构) 13 | - [六、接口文档](#六接口文档) 14 | - [1. Calendar类](#1-calendar类) 15 | - [2. Dom类](#2-dom类) 16 | - [七、调试日历](#七调试日历) 17 | - [八、移动适配](#八移动适配) 18 | - [九、后续开发](#九后续开发) 19 | - [十、总结](#十总结) 20 | 21 | ------ 22 | 23 | ## 二、简介 24 | 25 | 本款万年历实现了农历,公历,天干地支,24节气,国内国际假日,每日宜忌(08年~20年),节假日(14年~16年)的查询。 26 | 万年历界面采用百度日历UI界面,核心JS代码手动编写,没有依赖函数库。代码采用模块式开发,gulp构建,HBuilder开发。***另用node-webkit打包了一版桌面应用,方便使用。*** 27 | 28 | ![预览](https://raw.githubusercontent.com/mircode/calender/master/doc/html/img/main.gif) 29 | 30 | ## 三、开发流程 31 | 32 | - [ ] 选择一款日历UI(经过筛选,百度日历的UI比较简洁漂亮)。 33 | - [ ] 编写JavaScript核心代码,实现农历、公历等日期信息参数的查询。 34 | - [ ] 将JavaScript代码和UI界面,整合到一起。期间涉及DOM生成模块(实现模板功能),Event模块,CSS模块(切换主题和UI),日历算法核心模块,仿jQuery模块(工具类)。 35 | - [ ] 使用gulp前端构建工具打包发布工程。 36 | - [ ] 编写开发文档。 37 | 38 | ## 四、主要模块 39 | - [x] 核心算法模块(calender.js) 40 | - [x] 仿jQuery模块,提供工具函数(common.js) 41 | - [x] Dom模块,生成HTML页面结构(dom.js) 42 | - [x] Event模块,日历中各种事件(event.js) 43 | - [x] 入口模块(main.js) 44 | 45 | ## 五、目录结构 46 | 47 | ![目录结构](https://raw.githubusercontent.com/mircode/calender/master/doc/html/img/construct.png) 48 | 49 | ## 六、接口文档 50 | 51 | 日历主要有两个全局变量window.Calendar和window.DOM,Calender类主要实现了日历相关的功能,DOM类实现了主要的jQuery函数。 52 | 53 | ### 1. Calendar类 54 | ![目录结构](https://raw.githubusercontent.com/mircode/calender/master/doc/html/img/calendar_api.png) 55 | 56 | ### 2. Dom类 57 | ![目录结构](https://raw.githubusercontent.com/mircode/calender/master/doc/html/img/dom_api.png) 58 | ## 七、调试日历 59 | ![目录结构](https://raw.githubusercontent.com/mircode/calender/master/doc/html/img/console_show.png) 60 | ## 八、移动适配 61 | ```css 62 | /* 小屏幕(平板,大于等于 768px) */ 63 | @media (max-width: 600px) { 64 | .op-calendar-new-right{ 65 | display:none; 66 | } 67 | .c-container{ 68 | width:409px; 69 | border-right: 2px solid #57abff; 70 | } 71 | } 72 | ``` 73 | ![目录结构](https://raw.githubusercontent.com/mircode/calender/master/doc/html/img/app.gif) 74 | 75 | ## 九、后续开发 76 | - [ ] 模块之间通过require加载。 77 | - [ ] CSS通过Less等css编译工具编译完成。 78 | - [ ] 只做了简单媒体查询样式代码的编写,移动端适配的功能有待完善和开发。 79 | - [ ] 对HTML结构要求比较苛刻,暂不支持模板替换和主题替换。 80 | 81 | ## 十、总结 82 | 限于时间原因,不能更多的书写详细的文档,还希望各位大神拜读源码了。通过该项目又一次发现了自己技术的不足,需要继续学习.... 83 | 84 | 85 | 86 | ------ 87 | 88 | 89 | 90 | 作者 魏国兴 91 | 邮箱 1607646162@qq.com 92 | 2016 年 04月 13日 93 | 94 | 95 | -------------------------------------------------------------------------------- /calendar.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 万年历 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 |
18 | 19 |
20 |
21 | 22 |
23 | 24 |
25 |
26 |
27 |
2016年
28 |
29 |
30 |
31 |
32 | 37 |
38 |
39 | 40 | 41 |
42 | < 43 | > 44 |
45 |
46 |
4月
47 |
48 |
49 |
50 |
51 | 56 |
57 |
58 | 59 | 60 | 61 |
62 |
63 |
64 |
假期安排
65 |
66 |
67 |
68 |
69 | 75 |
76 |
77 | 78 |
79 | 80 | 81 | 返回今天 82 | 83 | 84 |
85 | 86 |
87 | 88 |
89 | 90 |
91 | 92 | 93 |
94 |
95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /css/calendar.css: -------------------------------------------------------------------------------- 1 | .op-calendar-new-box { 2 | border: 2px solid #57abff; 3 | border-right: 0; 4 | height: 366px; 5 | position: relative; 6 | z-index: 1 7 | } 8 | 9 | .op-calendar-new-holiday-box, 10 | .op-calendar-new-month-box, 11 | .op-calendar-new-year-box { 12 | float: left 13 | } 14 | 15 | .op-calendar-new-month-box, 16 | .op-calendar-new-year-box { 17 | margin-right: 7px 18 | } 19 | 20 | .op-calendar-new-year-box { 21 | width: 80px 22 | } 23 | 24 | .op-calendar-new-month-box { 25 | width: 61px; 26 | padding: 0 22px; 27 | position: relative; 28 | z-index: 1 29 | } 30 | 31 | .op-calendar-new-holiday-box { 32 | width: 95px 33 | } 34 | 35 | .op-calendar-new-select-box { 36 | height: 26px; 37 | float: left; 38 | zoom: 1; 39 | visibility: hidden 40 | } 41 | 42 | .op-calendar-new-backtoday { 43 | float: right; 44 | width: 52px 45 | } 46 | 47 | .op-calendar-new-left { 48 | padding: 10px; 49 | width: 385px; 50 | position: absolute; 51 | z-index: 1; 52 | left: 0 53 | } 54 | 55 | .op-calendar-new-right { 56 | color: #fff; 57 | text-align: center; 58 | margin-left: 406px; 59 | height: 368px; 60 | _height: 366px; 61 | filter: progid: DXImageTransform.Microsoft.gradient(startColorstr=#55aaff, endColorstr=#73b9ff, grandientType=0); 62 | background: #5caeff; 63 | background: -webkit-gradient(linear, 0 0, 0 100%, from(#5af), to(#73b9ff)); 64 | background: -moz-linear-gradient(top, #5af, #73b9ff) 65 | } 66 | 67 | .op-calendar-new-table-box { 68 | float: left 69 | } 70 | 71 | .op-calendar-new-month-box .c-dropdown2-btn-icon-border { 72 | border-color: transparent; 73 | _border-color: #fff; 74 | background-color: transparent!important 75 | } 76 | 77 | .op-calendar-new .c-dropdown2 .c-dropdown2-btn-icon { 78 | padding-left: 0 79 | } 80 | 81 | .op-calendar-new-next-month, 82 | .op-calendar-new-prev-month { 83 | position: absolute; 84 | top: 0; 85 | display: block; 86 | width: 21px; 87 | border: 1px solid #999; 88 | border-bottom-color: #d8d8d8; 89 | background: #fafafa; 90 | height: 24px; 91 | text-align: center; 92 | line-height: 24px; 93 | text-decoration: none; 94 | color: #7a7a7a; 95 | font-weight: 700; 96 | font-family: Simsun, Simhei, sans-serif; 97 | z-index: 205 98 | } 99 | 100 | .op-calendar-new-prev-month { 101 | left: 0; 102 | border-right-color: #d8d8d8 103 | } 104 | 105 | .op-calendar-new-next-month { 106 | right: 0; 107 | border-left-color: #d8d8d8 108 | } 109 | 110 | .op-calendar-new-next-month:hover, 111 | .op-calendar-new-prev-month:hover { 112 | color: #389cff; 113 | border-color: #389cff; 114 | border-left: 1px solid #389cff 115 | } 116 | 117 | .op-calendar-new-month-box .c-dropdown2-btn { 118 | _text-indent: -2px 119 | } 120 | 121 | .op-calendar-new-table { 122 | width: 385px; 123 | border-collapse: collapse; 124 | border-spacing: 0 125 | } 126 | 127 | .op-calendar-new-table td, 128 | .op-calendar-new-table th { 129 | width: 55px; 130 | height: 54px; 131 | border-top: 1px solid #c8cacc; 132 | padding: 0 133 | } 134 | 135 | .op-calendar-new-relative { 136 | position: relative; 137 | width: 100%; 138 | zoom: 1 139 | } 140 | 141 | .op-calendar-new-table th { 142 | height: 33px; 143 | border-color: #5af; 144 | font-weight: 400; 145 | font-size: 14px 146 | } 147 | 148 | .op-calendar-new-table-six td { 149 | height: 45px 150 | } 151 | 152 | .op-calendar-new-table td a { 153 | display: block; 154 | width: 48px; 155 | border-right: 1px solid #fff; 156 | height: 33px; 157 | padding: 11px 3px 10px; 158 | text-align: center; 159 | text-decoration: none; 160 | line-height: 1; 161 | white-space: nowrap; 162 | overflow: hidden 163 | } 164 | 165 | .op-calendar-new-table td a * { 166 | cursor: pointer 167 | } 168 | 169 | .op-calendar-new-table-six td a { 170 | padding: 6px 3px 171 | } 172 | 173 | .op-calendar-new-table td .op-calendar-new-table-border, 174 | .op-calendar-new-table td .op-calendar-new-table-selected, 175 | .op-calendar-new-table td a:hover { 176 | padding: 8px 0 7px; 177 | width: 48px; 178 | border: 3px solid #fb0; 179 | position:static 180 | } 181 | 182 | .op-calendar-new-table-six td .op-calendar-new-table-border, 183 | .op-calendar-new-table-six td .op-calendar-new-table-selected, 184 | .op-calendar-new-table-six td a:hover { 185 | padding: 3px 0 186 | } 187 | 188 | .op-calendar-new-daynumber { 189 | display: block; 190 | height: 22px; 191 | font-size: 18px; 192 | color: #000 193 | } 194 | 195 | .op-calendar-new-table-almanac { 196 | display: block; 197 | color: #999; 198 | font-size: 12px 199 | } 200 | 201 | .op-calendar-new-table-festival .op-calendar-new-table-almanac, 202 | .op-calendar-new-table-weekend .op-calendar-new-daynumber, 203 | th.op-calendar-new-table-weekend { 204 | color: #e02d2d 205 | } 206 | 207 | .op-calendar-new-table-other-month .op-calendar-new-daynumber, 208 | .op-calendar-new-table-other-month .op-calendar-new-table-almanac { 209 | color: #bfbfbf 210 | } 211 | 212 | .op-calendar-new-table-today .op-calendar-new-daynumber, 213 | .op-calendar-new-table-today .op-calendar-new-table-almanac { 214 | color: #fff 215 | } 216 | 217 | .op-calendar-new-table-today { 218 | background: #fb0 219 | } 220 | .op-calendar-new-table td .op-calendar-new-table-rest, 221 | .op-calendar-new-table td .op-calendar-new-table-work { 222 | background: #fff0f0 223 | } 224 | 225 | .op-calendar-new-table td .op-calendar-new-table-work { 226 | background: #f5f5f5 227 | } 228 | 229 | .op-calendar-new-table-holiday-sign { 230 | position: absolute; 231 | left: 0; 232 | top: 0; 233 | display: block; 234 | width: 15px; 235 | height: 15px; 236 | color: #fff; 237 | background: #f43; 238 | text-align: left; 239 | text-indent: 1px; 240 | line-height: 14px; 241 | *line-height: 18px; 242 | overflow: hidden 243 | } 244 | 245 | .op-calendar-new-table-work .op-calendar-new-table-holiday-sign { 246 | background: #969799 247 | } 248 | 249 | .op-calendar-new-table-other-month .op-calendar-new-table-holiday-sign { 250 | filter: alpha(opacity=50); 251 | opacity: .5 252 | } 253 | 254 | .op-calendar-new-right-date { 255 | height: 48px; 256 | line-height: 48px 257 | } 258 | 259 | .op-calendar-new-right-day { 260 | position: relative; 261 | width: 75px; 262 | height: 75px; 263 | margin: 0 auto; 264 | line-height: 76px; 265 | font-size: 52px; 266 | background: #fb0; 267 | border-radius: 3px; 268 | box-shadow: 1px 2px 5px rgba(0, 0, 0, .1), -1px 2px 5px rgba(0, 0, 0, .1) 269 | } 270 | 271 | .op-calendar-new-right-lunar span { 272 | display: block 273 | } 274 | 275 | .op-calendar-new-right-almanac { 276 | margin: 10px auto 0; 277 | width: 110px; 278 | border-top: 2px solid #94c9ff; 279 | padding-top: 10px; 280 | line-height: 18px; 281 | height: 155px 282 | } 283 | 284 | .op-calendar-new-right-almanac span { 285 | display: block; 286 | width: 55px; 287 | float: left; 288 | white-space: nowrap; 289 | overflow: hidden 290 | } 291 | 292 | .op-calendar-new-right-almanac i { 293 | display: block; 294 | width: 30px; 295 | height: 30px; 296 | margin: 0 auto 5px 297 | } 298 | 299 | .op-calendar-hover-avoid i, 300 | .op-calendar-hover-suit i, 301 | .op-calendar-new-right-almanac i { 302 | font: 24px/30px 'Microsoft Yahei'; 303 | text-shadow: 2px 2px 1px rgba(0, 0, 0, .1); 304 | text-align: center; 305 | color: #fff 306 | } 307 | 308 | .op-calendar-new-right-hover .op-calendar-hover-almanac { 309 | display: block 310 | } 311 | 312 | .op-calendar-hover-almanac { 313 | display: none; 314 | position: absolute; 315 | width: 210px; 316 | right: -231px; 317 | top: 198px; 318 | background: #fff; 319 | padding: 15px 10px; 320 | border: 1px solid #5fafff; 321 | color: #333; 322 | box-shadow: 4px 4px rgba(0, 0, 0, .05); 323 | z-index: 100 324 | } 325 | 326 | .op-calendar-almanac-arrow { 327 | position: absolute; 328 | top: 20px; 329 | left: -11px; 330 | font: 22px Simsun; 331 | color: #fff; 332 | text-shadow: 0 -1px rgba(0, 0, 0, .05); 333 | z-index: 1 334 | } 335 | 336 | .op-calendar-hover-avoid, 337 | .op-calendar-hover-suit { 338 | padding-left: 40px; 339 | position: relative; 340 | display: block; 341 | min-height: 30px; 342 | _height: 30px; 343 | text-align: left 344 | } 345 | 346 | .op-calendar-hover-avoid i, 347 | .op-calendar-hover-suit i { 348 | display: block; 349 | position: absolute; 350 | top: 0; 351 | left: 0; 352 | width: 30px; 353 | height: 30px; 354 | background: #67b3ff 355 | } 356 | 357 | .op-calendar-hover-avoid i { 358 | background: #ff5040 359 | } 360 | 361 | .op-calendar-new-holidaytip { 362 | display: none; 363 | position: relative; 364 | background: #f7f7f7; 365 | padding: 10px 10px 10px 0 366 | } 367 | 368 | .op-calendar-new-holidaytip p { 369 | margin-left: 35px 370 | } 371 | 372 | .op-calendar-new-holidaytip-icon { 373 | position: absolute; 374 | left: 0; 375 | top: 10px; 376 | padding-left: 10px; 377 | width: 20px; 378 | height: 20px; 379 | text-align: center; 380 | font: 20px/20px Simsun; 381 | color: #61b0ff 382 | } 383 | 384 | .op-calendar-new-holidaytip-icon i { 385 | font: 14px/20px Tahoma, Arial; 386 | _line-height: 16px; 387 | position: absolute; 388 | width: 20px; 389 | height: 20px; 390 | right: 0; 391 | top: 0 392 | } 393 | 394 | .op-calendar-new-holidaystyle .op-calendar-new-box, 395 | .op-calendar-new-red-bg .op-calendar-new-box { 396 | border-color: #cb1c18 397 | } 398 | 399 | .op-calendar-new-holidaystyle .op-calendar-new-right, 400 | .op-calendar-new-red-bg .op-calendar-new-right { 401 | color: #fff; 402 | text-align: center; 403 | margin-left: 406px; 404 | height: 368px; 405 | _height: 366px; 406 | filter: progid: DXImageTransform.Microsoft.gradient(startColorstr=#cb1c18, endColorstr=#f44f23, grandientType=0); 407 | background: #cb1c18; 408 | background: -webkit-gradient(linear, 0 0, 0 100%, from(#cb1c18), to(#f44f23)); 409 | background: -moz-linear-gradient(top, #cb1c18, #f44f23) 410 | } 411 | 412 | .op-calendar-new-holidaystyle .op-calendar-new-right-almanac, 413 | .op-calendar-new-red-bg .op-calendar-new-right-almanac { 414 | border-top-color: #eb7563 415 | } 416 | 417 | .op-calendar-new-holidaystyle .op-calendar-new-table th, 418 | .op-calendar-new-red-bg .op-calendar-new-table th { 419 | border-color: #f55c4e 420 | } 421 | 422 | .op-calendar-new-holidaystyle .op-calendar-hover-almanac, 423 | .op-calendar-new-red-bg .op-calendar-hover-almanac { 424 | border-color: #cb1c18 425 | } 426 | 427 | .op-bk-polysemy-bold { 428 | font-weight: 700 429 | } 430 | 431 | .op-bk-polysemy-other span { 432 | display: block 433 | } 434 | 435 | .op-bk-polysemy-space { 436 | white-space: nowrap 437 | } 438 | 439 | .op-bk-polysemy-oneother .op-bk-polysemy-move, 440 | .op-bk-polysemy-oneother span { 441 | margin-left: 0 442 | } 443 | 444 | .op-bk-polysemy-focus { 445 | height: 22px; 446 | _height: 24px; 447 | line-height: 1.69em; 448 | margin-bottom: 2px; 449 | overflow: hidden 450 | } 451 | 452 | .op-bk-polysemy-focustext { 453 | float: left; 454 | display: inline-block; 455 | height: 22px; 456 | padding: 0 8px 0 30px; 457 | background: url(../img/bk_polyicon.png) 5px 0 no-repeat #3288ff; 458 | _background: url(../img/bk_polyicon1.gif) 5px center no-repeat #3288ff; 459 | color: #fff 460 | } 461 | 462 | .op-bk-polysemy-focus a { 463 | display: inline-block; 464 | height: 22px; 465 | line-height: 1.69em; 466 | float: left; 467 | border-right: 2px solid #fff; 468 | background: #f5f5f5; 469 | padding: 0 8px; 470 | text-decoration: none; 471 | color: #333 472 | } 473 | 474 | .op-bk-polysemy-focus a.op-bk-polysemy_focusafirst { 475 | background: url(../img/bk_polyicon.png) 0 -22px no-repeat #f5f5f5 476 | } 477 | 478 | .op-bk-polysemy-focusf { 479 | height: 23px; 480 | _height: 25px; 481 | line-height: 1.69em; 482 | margin-bottom: 2px; 483 | overflow: hidden 484 | } 485 | 486 | .op-bk-polysemy-focusleft { 487 | float: left; 488 | display: inline-block; 489 | height: 21px; 490 | border: 1px solid #38f 491 | } 492 | 493 | .op-bk-polysemy-focusrightf, 494 | .op-bk-polysemy-focustextf { 495 | border-top: 1px solid #f0f0f0; 496 | border-bottom: 1px solid #f0f0f0 497 | } 498 | 499 | .op-bk-polysemy-focustextf { 500 | float: left; 501 | display: inline-block; 502 | height: 21px; 503 | padding-left: 10px 504 | } 505 | 506 | .op-bk-polysemy-focustextf span { 507 | color: #38f 508 | } 509 | 510 | .op-bk-polysemy-focusrightf { 511 | float: left; 512 | display: inline-block; 513 | height: 21px; 514 | border-right: 1px solid #f0f0f0 515 | } 516 | 517 | .op-bk-polysemy-focusrightf span { 518 | display: inline-block; 519 | float: left; 520 | color: #ccc 521 | } 522 | 523 | .op-bk-polysemy-focusrightf a { 524 | display: inline-block; 525 | height: 21px; 526 | line-height: 1.54em; 527 | text-decoration: underline; 528 | border: none; 529 | background: #fff; 530 | float: left; 531 | padding: 0 8px; 532 | color: #00c 533 | } 534 | 535 | .op-bk-polysemy-focusrightf a.op-bk-polysemy_focusrfirst { 536 | padding-left: 4px; 537 | background: #fff; 538 | color: #00c 539 | } 540 | 541 | .op-bk-polysemy-album { 542 | position: relative; 543 | width: 100%; 544 | display: block 545 | } 546 | 547 | .op-bk-polysemy-albumPr { 548 | position: relative 549 | } 550 | 551 | .op-bk-polysemy-albumMore { 552 | display: block; 553 | width: 100%; 554 | height: 18px; 555 | line-height: 18px; 556 | background: #525252; 557 | background: rgba(82, 82, 82, .6); 558 | color: #fff; 559 | position: absolute; 560 | bottom: 0; 561 | left: 0; 562 | text-align: center; 563 | filter: alpha(opacity=60) 564 | } 565 | 566 | .op-bk-polysemy-albumBorder { 567 | width: 99%; 568 | height: 99%; 569 | position: absolute; 570 | border-right: 1px solid #bfbfbf; 571 | border-bottom: 1px solid #bfbfbf; 572 | right: -2px; 573 | bottom: -2px; 574 | overflow: hidden; 575 | z-index: 59; 576 | _right: -3px 577 | } 578 | 579 | .op-bk-polysemy-albumBorderSec { 580 | right: -4px; 581 | bottom: -4px; 582 | _right: -5px 583 | } 584 | 585 | .op-tieba-general-chapter, 586 | .op-tieba-general-otherbar, 587 | .op-tieba-general-table td { 588 | line-height: 24px; 589 | height: 24px 590 | } 591 | 592 | .op-tieba-general-otherbar { 593 | margin-top: -2px; 594 | position: relative 595 | } 596 | 597 | .op-tieba-general-guanzhu, 598 | .op-tieba-general-subtitle { 599 | line-height: 14px; 600 | height: 14px; 601 | font-size: 1em; 602 | margin-bottom: 5px 603 | } 604 | 605 | .op-tieba-general-otherbar span { 606 | margin-left: 5px; 607 | margin-right: 5px; 608 | color: #999 609 | } 610 | 611 | .op-tieba-general-addnum i, 612 | .op-tieba-general-replay-time i { 613 | font-style: normal 614 | } 615 | 616 | .op-tieba-general-mainpic { 617 | position: relative 618 | } 619 | 620 | .op-tieba-general-photo { 621 | position: absolute; 622 | left: 0; 623 | top: 0; 624 | _display: none; 625 | z-index: -1 626 | } 627 | 628 | .op-tieba-general-photo-link { 629 | line-height: 0 630 | } 631 | 632 | .op-tieba-general-linktxt { 633 | display: inline-block 634 | } 635 | 636 | .op-tieba-general-addnum, 637 | .op-tieba-general-replay-time { 638 | color: #666 639 | } 640 | 641 | .op-tieba-general-pline { 642 | margin-bottom: 3px; 643 | *margin-bottom: 5px 644 | } 645 | 646 | .op-tieba-general-maintable i { 647 | font-style: normal 648 | } 649 | 650 | .op-tieba-general-maintable { 651 | padding-top: 2px 652 | } 653 | 654 | .op-tieba-general-mainpl { 655 | padding-left: 10px 656 | } 657 | 658 | .op-tieba-general-maintable td { 659 | padding-bottom: 2px; 660 | padding-top: 2px 661 | } 662 | 663 | .op-tieba-general-graycolor { 664 | color: #666 665 | } 666 | 667 | .op-tieba-general-main-col { 668 | margin-top: -4px; 669 | position: relative 670 | } 671 | 672 | .op-tieba-general-main-col p { 673 | margin-top: 1px 674 | } 675 | 676 | .op-tieba-general-right { 677 | margin-right: 15px 678 | } 679 | 680 | .op-tieba-general-lookmore { 681 | height: 24px; 682 | line-height: 24px; 683 | margin-top: -2px; 684 | position: relative 685 | } 686 | 687 | .op-tieba-general-mainpic-toleft { 688 | width: 79px; 689 | float: right; 690 | height: 79px; 691 | overflow: hidden; 692 | position: relative 693 | } 694 | 695 | .op-tieba-general-xuan { 696 | margin-right: 13px 697 | } 698 | 699 | .opr-recommends-merge-title { 700 | text-decoration: none 701 | } 702 | 703 | .opr-recommends-merge-title:hover { 704 | text-decoration: underline 705 | } 706 | 707 | .opr-recommends-merge-imgtext { 708 | display: block 709 | } 710 | 711 | .opr-recommends-merge-hide { 712 | display: none 713 | } 714 | 715 | .opr-recommends-merge-p { 716 | position: relative; 717 | _zoom: 1 718 | } 719 | 720 | .opr-recommends-merge-item { 721 | text-align: center 722 | } 723 | 724 | .opr-recommends-merge-mask { 725 | position: absolute; 726 | top: 0; 727 | left: 0; 728 | width: 100%; 729 | _background: 0 0; 730 | background: -webkit-radial-gradient(center, closest-side, rgba(255, 255, 255, 0), rgba(0, 0, 0, .03)); 731 | background: -moz-radial-gradient(center, closest-side, rgba(255, 255, 255, 0), rgba(0, 0, 0, .03)); 732 | background: -o-radial-gradient(center, closest-side, rgba(255, 255, 255, 0), rgba(0, 0, 0, .03)); 733 | background: -ms-radial-gradient(center, closest-side, rgba(255, 255, 255, 0), rgba(0, 0, 0, .03)) 734 | } 735 | 736 | .opr-recommends-merge-more-btn i { 737 | cursor: pointer 738 | } 739 | 740 | .opr-recommends-merge-layerbtn { 741 | position: absolute; 742 | right: 0; 743 | bottom: 0; 744 | width: 1.23em; 745 | height: 1.23em; 746 | background: url(../imglayericon.png) no-repeat; 747 | _background-image: url(../imglayericon.gif) 748 | } 749 | 750 | .opr-recommends-merge-layerbtn1, 751 | .opr-recommends-merge-layerbtn2 { 752 | background-position: -48px 0 753 | } 754 | 755 | .opr-recommends-merge-layerbtn1, 756 | .opr-recommends-merge-layerbtn3 { 757 | background-color: #999 758 | } 759 | 760 | .opr-recommends-merge-layerbtn1:hover, 761 | .opr-recommends-merge-layerbtn2, 762 | .opr-recommends-merge-layerbtn3:hover, 763 | .opr-recommends-merge-layerbtn4 { 764 | background-color: #38f 765 | } 766 | 767 | .opr-recommends-merge-layerbtn3:hover, 768 | .opr-recommends-merge-layerbtn4:hover { 769 | background-position: -24px 0 770 | } 771 | 772 | .opr-recommends-merge-layer { 773 | padding: 4px 9px; 774 | width: 350px 775 | } 776 | 777 | .opr-recommends-merge-layer table { 778 | border-collapse: collapse; 779 | border-padding: 0 780 | } 781 | 782 | .opr-recommends-merge-layer td { 783 | font-size: 1em; 784 | line-height: 1.67; 785 | vertical-align: top 786 | } 787 | 788 | .opr-recommends-merge-lastspan { 789 | display: none 790 | } 791 | 792 | .opr-recommends-merge-mbGap { 793 | margin-bottom: 28px 794 | } 795 | 796 | .container_l .opr-recommends-merge-lastspan { 797 | display: block 798 | } 799 | 800 | .container_l .cr-content-narrow .opr-recommends-merge-lastspan { 801 | display: none 802 | } 803 | 804 | .opr-recommends-merge-dodge-wrap { 805 | margin-bottom: 24px; 806 | font-size: 1.1em 807 | } 808 | 809 | .opr-recommends-merge-user-layer { 810 | width: 235px; 811 | position: absolute; 812 | border: 1px solid #eee; 813 | border-radius: 2px; 814 | margin-top: 10px; 815 | margin-left: -60px; 816 | *margin-left: -140px; 817 | z-index: 998; 818 | background: #fff; 819 | color: #333; 820 | font-size: 13px; 821 | text-align: center; 822 | padding: 14px 15px 823 | } 824 | 825 | .opr-recommends-merge-user-layer button { 826 | margin-top: 12px; 827 | font-size: 12px 828 | } 829 | 830 | .opr-recommends-merge-user-layer img { 831 | top: 2px; 832 | position: relative 833 | } 834 | 835 | .opr-recommends-merge-user-secondBtn { 836 | margin-left: 8px 837 | } 838 | 839 | .opr-recommends-merge-user-secondBtn i { 840 | -ms-transform: rotate(180deg); 841 | -moz-transform: rotate(180deg); 842 | -webkit-transform: rotate(180deg); 843 | -o-transform: rotate(180deg) 844 | } 845 | 846 | .opr-recommends-merge-user-layer-tips { 847 | position: absolute; 848 | margin-top: 5px; 849 | margin-left: 67px; 850 | *margin-left: -22px; 851 | border-left: 6px solid transparent; 852 | border-right: 6px solid transparent; 853 | border-bottom: 6px solid #eee; 854 | width: 0; 855 | height: 0; 856 | z-index: 999 857 | } 858 | 859 | .opr-recommends-merge-content { 860 | position: relative 861 | } 862 | 863 | .opr-recommends-merge-user-layer-tips-fff { 864 | margin-top: 6px; 865 | border-bottom: 6px solid #fff 866 | } 867 | 868 | .opr-recommends-merge-user-layer-hide { 869 | display: none 870 | } 871 | 872 | .opr-recommends-merge-user-layer-icon { 873 | position: relative; 874 | top: 2px; 875 | width: 14px; 876 | height: 14px 877 | } 878 | 879 | .opr-recommends-merge-user-layer-con { 880 | position: absolute; 881 | width: 312px; 882 | height: 140px; 883 | top: 0; 884 | padding-top: 20px; 885 | z-index: 999 886 | } 887 | 888 | .opr-toplist-title { 889 | position: relative 890 | } 891 | 892 | .opr-toplist-table .opr-toplist-right { 893 | text-align: right; 894 | white-space: nowrap 895 | } 896 | 897 | .opr-toplist-info { 898 | color: #666; 899 | text-align: right 900 | } 901 | 902 | .opr-toplist-info a { 903 | color: #666 904 | } 905 | 906 | .opr-toplist-st { 907 | margin-bottom: 2px 908 | } 909 | 910 | .container_s #content_right .opui-advert2-img-big { 911 | width: 259px; 912 | _height: 70px 913 | } 914 | 915 | .container_l #content_right .opui-advert2-img-big { 916 | _width: 351px; 917 | _height: 95px 918 | } 919 | 920 | .opr-toplist-more { 921 | position: absolute; 922 | right: -10px; 923 | top: 0 924 | } 925 | 926 | .opr-toplist-more-currentBtn { 927 | color: #666 928 | } 929 | 930 | .opr-toplist-more-chevron { 931 | padding: 10px; 932 | cursor: pointer 933 | } 934 | 935 | .opr-toplist-more-chevron-left { 936 | padding-right: 2px 937 | } 938 | 939 | .opr-toplist-more-chevron-right { 940 | padding-left: 2px 941 | } 942 | 943 | .opr-toplist-more-btn { 944 | display: inline-block; 945 | width: 4px; 946 | height: 4px; 947 | margin: 0 3px; 948 | *margin-top: -8px; 949 | overflow: hidden; 950 | background: url(../img/toplist_dot.png) -4px 0 no-repeat 951 | } 952 | 953 | .opr-toplist-more-currentBtn { 954 | background-position: 0 0 955 | } 956 | 957 | /* 小屏幕(平板,大于等于 768px) */ 958 | @media (max-width: 360px) { 959 | .op-calendar-new-right{ 960 | display:none; 961 | } 962 | .c-container{ 963 | width:409px; 964 | border-right: 2px solid #57abff; 965 | } 966 | } -------------------------------------------------------------------------------- /dist/calendar.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 万年历 6 | 7 | 8 | 9 | 10 | 11 |
12 |
13 | 14 |
15 |
16 | 17 |
18 | 19 |
20 |
21 |
22 |
2016年
23 |
24 |
25 |
26 |
27 | 32 |
33 |
34 | 35 | 36 |
37 | < 38 | > 39 |
40 |
41 |
4月
42 |
43 |
44 |
45 |
46 | 51 |
52 |
53 | 54 | 55 | 56 |
57 |
58 |
59 |
假期安排
60 |
61 |
62 |
63 |
64 | 70 |
71 |
72 | 73 |
74 | 75 | 76 | 返回今天 77 | 78 | 79 |
80 | 81 |
82 | 83 |
84 | 85 |
86 | 87 | 88 |
89 |
90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /dist/css/calendar.css: -------------------------------------------------------------------------------- 1 | .op-calendar-new-box { 2 | border: 2px solid #57abff; 3 | border-right: 0; 4 | height: 366px; 5 | position: relative; 6 | z-index: 1 7 | } 8 | 9 | .op-calendar-new-holiday-box, 10 | .op-calendar-new-month-box, 11 | .op-calendar-new-year-box { 12 | float: left 13 | } 14 | 15 | .op-calendar-new-month-box, 16 | .op-calendar-new-year-box { 17 | margin-right: 7px 18 | } 19 | 20 | .op-calendar-new-year-box { 21 | width: 80px 22 | } 23 | 24 | .op-calendar-new-month-box { 25 | width: 61px; 26 | padding: 0 22px; 27 | position: relative; 28 | z-index: 1 29 | } 30 | 31 | .op-calendar-new-holiday-box { 32 | width: 95px 33 | } 34 | 35 | .op-calendar-new-select-box { 36 | height: 26px; 37 | float: left; 38 | zoom: 1; 39 | visibility: hidden 40 | } 41 | 42 | .op-calendar-new-backtoday { 43 | float: right; 44 | width: 52px 45 | } 46 | 47 | .op-calendar-new-left { 48 | padding: 10px; 49 | width: 385px; 50 | position: absolute; 51 | z-index: 1; 52 | left: 0 53 | } 54 | 55 | .op-calendar-new-right { 56 | color: #fff; 57 | text-align: center; 58 | margin-left: 406px; 59 | height: 368px; 60 | _height: 366px; 61 | filter: progid: DXImageTransform.Microsoft.gradient(startColorstr=#55aaff, endColorstr=#73b9ff, grandientType=0); 62 | background: #5caeff; 63 | background: -webkit-gradient(linear, 0 0, 0 100%, from(#5af), to(#73b9ff)); 64 | background: -moz-linear-gradient(top, #5af, #73b9ff) 65 | } 66 | 67 | .op-calendar-new-table-box { 68 | float: left 69 | } 70 | 71 | .op-calendar-new-month-box .c-dropdown2-btn-icon-border { 72 | border-color: transparent; 73 | _border-color: #fff; 74 | background-color: transparent!important 75 | } 76 | 77 | .op-calendar-new .c-dropdown2 .c-dropdown2-btn-icon { 78 | padding-left: 0 79 | } 80 | 81 | .op-calendar-new-next-month, 82 | .op-calendar-new-prev-month { 83 | position: absolute; 84 | top: 0; 85 | display: block; 86 | width: 21px; 87 | border: 1px solid #999; 88 | border-bottom-color: #d8d8d8; 89 | background: #fafafa; 90 | height: 24px; 91 | text-align: center; 92 | line-height: 24px; 93 | text-decoration: none; 94 | color: #7a7a7a; 95 | font-weight: 700; 96 | font-family: Simsun, Simhei, sans-serif; 97 | z-index: 205 98 | } 99 | 100 | .op-calendar-new-prev-month { 101 | left: 0; 102 | border-right-color: #d8d8d8 103 | } 104 | 105 | .op-calendar-new-next-month { 106 | right: 0; 107 | border-left-color: #d8d8d8 108 | } 109 | 110 | .op-calendar-new-next-month:hover, 111 | .op-calendar-new-prev-month:hover { 112 | color: #389cff; 113 | border-color: #389cff; 114 | border-left: 1px solid #389cff 115 | } 116 | 117 | .op-calendar-new-month-box .c-dropdown2-btn { 118 | _text-indent: -2px 119 | } 120 | 121 | .op-calendar-new-table { 122 | width: 385px; 123 | border-collapse: collapse; 124 | border-spacing: 0 125 | } 126 | 127 | .op-calendar-new-table td, 128 | .op-calendar-new-table th { 129 | width: 55px; 130 | height: 54px; 131 | border-top: 1px solid #c8cacc; 132 | padding: 0 133 | } 134 | 135 | .op-calendar-new-relative { 136 | position: relative; 137 | width: 100%; 138 | zoom: 1 139 | } 140 | 141 | .op-calendar-new-table th { 142 | height: 33px; 143 | border-color: #5af; 144 | font-weight: 400; 145 | font-size: 14px 146 | } 147 | 148 | .op-calendar-new-table-six td { 149 | height: 45px 150 | } 151 | 152 | .op-calendar-new-table td a { 153 | display: block; 154 | width: 48px; 155 | border-right: 1px solid #fff; 156 | height: 33px; 157 | padding: 11px 3px 10px; 158 | text-align: center; 159 | text-decoration: none; 160 | line-height: 1; 161 | white-space: nowrap; 162 | overflow: hidden 163 | } 164 | 165 | .op-calendar-new-table td a * { 166 | cursor: pointer 167 | } 168 | 169 | .op-calendar-new-table-six td a { 170 | padding: 6px 3px 171 | } 172 | 173 | .op-calendar-new-table td .op-calendar-new-table-border, 174 | .op-calendar-new-table td .op-calendar-new-table-selected, 175 | .op-calendar-new-table td a:hover { 176 | padding: 8px 0 7px; 177 | width: 48px; 178 | border: 3px solid #fb0; 179 | position:static 180 | } 181 | 182 | .op-calendar-new-table-six td .op-calendar-new-table-border, 183 | .op-calendar-new-table-six td .op-calendar-new-table-selected, 184 | .op-calendar-new-table-six td a:hover { 185 | padding: 3px 0 186 | } 187 | 188 | .op-calendar-new-daynumber { 189 | display: block; 190 | height: 22px; 191 | font-size: 18px; 192 | color: #000 193 | } 194 | 195 | .op-calendar-new-table-almanac { 196 | display: block; 197 | color: #999; 198 | font-size: 12px 199 | } 200 | 201 | .op-calendar-new-table-festival .op-calendar-new-table-almanac, 202 | .op-calendar-new-table-weekend .op-calendar-new-daynumber, 203 | th.op-calendar-new-table-weekend { 204 | color: #e02d2d 205 | } 206 | 207 | .op-calendar-new-table-other-month .op-calendar-new-daynumber, 208 | .op-calendar-new-table-other-month .op-calendar-new-table-almanac { 209 | color: #bfbfbf 210 | } 211 | 212 | .op-calendar-new-table-today .op-calendar-new-daynumber, 213 | .op-calendar-new-table-today .op-calendar-new-table-almanac { 214 | color: #fff 215 | } 216 | 217 | .op-calendar-new-table-today { 218 | background: #fb0 219 | } 220 | .op-calendar-new-table td .op-calendar-new-table-rest, 221 | .op-calendar-new-table td .op-calendar-new-table-work { 222 | background: #fff0f0 223 | } 224 | 225 | .op-calendar-new-table td .op-calendar-new-table-work { 226 | background: #f5f5f5 227 | } 228 | 229 | .op-calendar-new-table-holiday-sign { 230 | position: absolute; 231 | left: 0; 232 | top: 0; 233 | display: block; 234 | width: 15px; 235 | height: 15px; 236 | color: #fff; 237 | background: #f43; 238 | text-align: left; 239 | text-indent: 1px; 240 | line-height: 14px; 241 | *line-height: 18px; 242 | overflow: hidden 243 | } 244 | 245 | .op-calendar-new-table-work .op-calendar-new-table-holiday-sign { 246 | background: #969799 247 | } 248 | 249 | .op-calendar-new-table-other-month .op-calendar-new-table-holiday-sign { 250 | filter: alpha(opacity=50); 251 | opacity: .5 252 | } 253 | 254 | .op-calendar-new-right-date { 255 | height: 48px; 256 | line-height: 48px 257 | } 258 | 259 | .op-calendar-new-right-day { 260 | position: relative; 261 | width: 75px; 262 | height: 75px; 263 | margin: 0 auto; 264 | line-height: 76px; 265 | font-size: 52px; 266 | background: #fb0; 267 | border-radius: 3px; 268 | box-shadow: 1px 2px 5px rgba(0, 0, 0, .1), -1px 2px 5px rgba(0, 0, 0, .1) 269 | } 270 | 271 | .op-calendar-new-right-lunar span { 272 | display: block 273 | } 274 | 275 | .op-calendar-new-right-almanac { 276 | margin: 10px auto 0; 277 | width: 110px; 278 | border-top: 2px solid #94c9ff; 279 | padding-top: 10px; 280 | line-height: 18px; 281 | height: 155px 282 | } 283 | 284 | .op-calendar-new-right-almanac span { 285 | display: block; 286 | width: 55px; 287 | float: left; 288 | white-space: nowrap; 289 | overflow: hidden 290 | } 291 | 292 | .op-calendar-new-right-almanac i { 293 | display: block; 294 | width: 30px; 295 | height: 30px; 296 | margin: 0 auto 5px 297 | } 298 | 299 | .op-calendar-hover-avoid i, 300 | .op-calendar-hover-suit i, 301 | .op-calendar-new-right-almanac i { 302 | font: 24px/30px 'Microsoft Yahei'; 303 | text-shadow: 2px 2px 1px rgba(0, 0, 0, .1); 304 | text-align: center; 305 | color: #fff 306 | } 307 | 308 | .op-calendar-new-right-hover .op-calendar-hover-almanac { 309 | display: block 310 | } 311 | 312 | .op-calendar-hover-almanac { 313 | display: none; 314 | position: absolute; 315 | width: 210px; 316 | right: -231px; 317 | top: 198px; 318 | background: #fff; 319 | padding: 15px 10px; 320 | border: 1px solid #5fafff; 321 | color: #333; 322 | box-shadow: 4px 4px rgba(0, 0, 0, .05); 323 | z-index: 100 324 | } 325 | 326 | .op-calendar-almanac-arrow { 327 | position: absolute; 328 | top: 20px; 329 | left: -11px; 330 | font: 22px Simsun; 331 | color: #fff; 332 | text-shadow: 0 -1px rgba(0, 0, 0, .05); 333 | z-index: 1 334 | } 335 | 336 | .op-calendar-hover-avoid, 337 | .op-calendar-hover-suit { 338 | padding-left: 40px; 339 | position: relative; 340 | display: block; 341 | min-height: 30px; 342 | _height: 30px; 343 | text-align: left 344 | } 345 | 346 | .op-calendar-hover-avoid i, 347 | .op-calendar-hover-suit i { 348 | display: block; 349 | position: absolute; 350 | top: 0; 351 | left: 0; 352 | width: 30px; 353 | height: 30px; 354 | background: #67b3ff 355 | } 356 | 357 | .op-calendar-hover-avoid i { 358 | background: #ff5040 359 | } 360 | 361 | .op-calendar-new-holidaytip { 362 | display: none; 363 | position: relative; 364 | background: #f7f7f7; 365 | padding: 10px 10px 10px 0 366 | } 367 | 368 | .op-calendar-new-holidaytip p { 369 | margin-left: 35px 370 | } 371 | 372 | .op-calendar-new-holidaytip-icon { 373 | position: absolute; 374 | left: 0; 375 | top: 10px; 376 | padding-left: 10px; 377 | width: 20px; 378 | height: 20px; 379 | text-align: center; 380 | font: 20px/20px Simsun; 381 | color: #61b0ff 382 | } 383 | 384 | .op-calendar-new-holidaytip-icon i { 385 | font: 14px/20px Tahoma, Arial; 386 | _line-height: 16px; 387 | position: absolute; 388 | width: 20px; 389 | height: 20px; 390 | right: 0; 391 | top: 0 392 | } 393 | 394 | .op-calendar-new-holidaystyle .op-calendar-new-box, 395 | .op-calendar-new-red-bg .op-calendar-new-box { 396 | border-color: #cb1c18 397 | } 398 | 399 | .op-calendar-new-holidaystyle .op-calendar-new-right, 400 | .op-calendar-new-red-bg .op-calendar-new-right { 401 | color: #fff; 402 | text-align: center; 403 | margin-left: 406px; 404 | height: 368px; 405 | _height: 366px; 406 | filter: progid: DXImageTransform.Microsoft.gradient(startColorstr=#cb1c18, endColorstr=#f44f23, grandientType=0); 407 | background: #cb1c18; 408 | background: -webkit-gradient(linear, 0 0, 0 100%, from(#cb1c18), to(#f44f23)); 409 | background: -moz-linear-gradient(top, #cb1c18, #f44f23) 410 | } 411 | 412 | .op-calendar-new-holidaystyle .op-calendar-new-right-almanac, 413 | .op-calendar-new-red-bg .op-calendar-new-right-almanac { 414 | border-top-color: #eb7563 415 | } 416 | 417 | .op-calendar-new-holidaystyle .op-calendar-new-table th, 418 | .op-calendar-new-red-bg .op-calendar-new-table th { 419 | border-color: #f55c4e 420 | } 421 | 422 | .op-calendar-new-holidaystyle .op-calendar-hover-almanac, 423 | .op-calendar-new-red-bg .op-calendar-hover-almanac { 424 | border-color: #cb1c18 425 | } 426 | 427 | .op-bk-polysemy-bold { 428 | font-weight: 700 429 | } 430 | 431 | .op-bk-polysemy-other span { 432 | display: block 433 | } 434 | 435 | .op-bk-polysemy-space { 436 | white-space: nowrap 437 | } 438 | 439 | .op-bk-polysemy-oneother .op-bk-polysemy-move, 440 | .op-bk-polysemy-oneother span { 441 | margin-left: 0 442 | } 443 | 444 | .op-bk-polysemy-focus { 445 | height: 22px; 446 | _height: 24px; 447 | line-height: 1.69em; 448 | margin-bottom: 2px; 449 | overflow: hidden 450 | } 451 | 452 | .op-bk-polysemy-focustext { 453 | float: left; 454 | display: inline-block; 455 | height: 22px; 456 | padding: 0 8px 0 30px; 457 | background: url(../img/bk_polyicon.png) 5px 0 no-repeat #3288ff; 458 | _background: url(../img/bk_polyicon1.gif) 5px center no-repeat #3288ff; 459 | color: #fff 460 | } 461 | 462 | .op-bk-polysemy-focus a { 463 | display: inline-block; 464 | height: 22px; 465 | line-height: 1.69em; 466 | float: left; 467 | border-right: 2px solid #fff; 468 | background: #f5f5f5; 469 | padding: 0 8px; 470 | text-decoration: none; 471 | color: #333 472 | } 473 | 474 | .op-bk-polysemy-focus a.op-bk-polysemy_focusafirst { 475 | background: url(../img/bk_polyicon.png) 0 -22px no-repeat #f5f5f5 476 | } 477 | 478 | .op-bk-polysemy-focusf { 479 | height: 23px; 480 | _height: 25px; 481 | line-height: 1.69em; 482 | margin-bottom: 2px; 483 | overflow: hidden 484 | } 485 | 486 | .op-bk-polysemy-focusleft { 487 | float: left; 488 | display: inline-block; 489 | height: 21px; 490 | border: 1px solid #38f 491 | } 492 | 493 | .op-bk-polysemy-focusrightf, 494 | .op-bk-polysemy-focustextf { 495 | border-top: 1px solid #f0f0f0; 496 | border-bottom: 1px solid #f0f0f0 497 | } 498 | 499 | .op-bk-polysemy-focustextf { 500 | float: left; 501 | display: inline-block; 502 | height: 21px; 503 | padding-left: 10px 504 | } 505 | 506 | .op-bk-polysemy-focustextf span { 507 | color: #38f 508 | } 509 | 510 | .op-bk-polysemy-focusrightf { 511 | float: left; 512 | display: inline-block; 513 | height: 21px; 514 | border-right: 1px solid #f0f0f0 515 | } 516 | 517 | .op-bk-polysemy-focusrightf span { 518 | display: inline-block; 519 | float: left; 520 | color: #ccc 521 | } 522 | 523 | .op-bk-polysemy-focusrightf a { 524 | display: inline-block; 525 | height: 21px; 526 | line-height: 1.54em; 527 | text-decoration: underline; 528 | border: none; 529 | background: #fff; 530 | float: left; 531 | padding: 0 8px; 532 | color: #00c 533 | } 534 | 535 | .op-bk-polysemy-focusrightf a.op-bk-polysemy_focusrfirst { 536 | padding-left: 4px; 537 | background: #fff; 538 | color: #00c 539 | } 540 | 541 | .op-bk-polysemy-album { 542 | position: relative; 543 | width: 100%; 544 | display: block 545 | } 546 | 547 | .op-bk-polysemy-albumPr { 548 | position: relative 549 | } 550 | 551 | .op-bk-polysemy-albumMore { 552 | display: block; 553 | width: 100%; 554 | height: 18px; 555 | line-height: 18px; 556 | background: #525252; 557 | background: rgba(82, 82, 82, .6); 558 | color: #fff; 559 | position: absolute; 560 | bottom: 0; 561 | left: 0; 562 | text-align: center; 563 | filter: alpha(opacity=60) 564 | } 565 | 566 | .op-bk-polysemy-albumBorder { 567 | width: 99%; 568 | height: 99%; 569 | position: absolute; 570 | border-right: 1px solid #bfbfbf; 571 | border-bottom: 1px solid #bfbfbf; 572 | right: -2px; 573 | bottom: -2px; 574 | overflow: hidden; 575 | z-index: 59; 576 | _right: -3px 577 | } 578 | 579 | .op-bk-polysemy-albumBorderSec { 580 | right: -4px; 581 | bottom: -4px; 582 | _right: -5px 583 | } 584 | 585 | .op-tieba-general-chapter, 586 | .op-tieba-general-otherbar, 587 | .op-tieba-general-table td { 588 | line-height: 24px; 589 | height: 24px 590 | } 591 | 592 | .op-tieba-general-otherbar { 593 | margin-top: -2px; 594 | position: relative 595 | } 596 | 597 | .op-tieba-general-guanzhu, 598 | .op-tieba-general-subtitle { 599 | line-height: 14px; 600 | height: 14px; 601 | font-size: 1em; 602 | margin-bottom: 5px 603 | } 604 | 605 | .op-tieba-general-otherbar span { 606 | margin-left: 5px; 607 | margin-right: 5px; 608 | color: #999 609 | } 610 | 611 | .op-tieba-general-addnum i, 612 | .op-tieba-general-replay-time i { 613 | font-style: normal 614 | } 615 | 616 | .op-tieba-general-mainpic { 617 | position: relative 618 | } 619 | 620 | .op-tieba-general-photo { 621 | position: absolute; 622 | left: 0; 623 | top: 0; 624 | _display: none; 625 | z-index: -1 626 | } 627 | 628 | .op-tieba-general-photo-link { 629 | line-height: 0 630 | } 631 | 632 | .op-tieba-general-linktxt { 633 | display: inline-block 634 | } 635 | 636 | .op-tieba-general-addnum, 637 | .op-tieba-general-replay-time { 638 | color: #666 639 | } 640 | 641 | .op-tieba-general-pline { 642 | margin-bottom: 3px; 643 | *margin-bottom: 5px 644 | } 645 | 646 | .op-tieba-general-maintable i { 647 | font-style: normal 648 | } 649 | 650 | .op-tieba-general-maintable { 651 | padding-top: 2px 652 | } 653 | 654 | .op-tieba-general-mainpl { 655 | padding-left: 10px 656 | } 657 | 658 | .op-tieba-general-maintable td { 659 | padding-bottom: 2px; 660 | padding-top: 2px 661 | } 662 | 663 | .op-tieba-general-graycolor { 664 | color: #666 665 | } 666 | 667 | .op-tieba-general-main-col { 668 | margin-top: -4px; 669 | position: relative 670 | } 671 | 672 | .op-tieba-general-main-col p { 673 | margin-top: 1px 674 | } 675 | 676 | .op-tieba-general-right { 677 | margin-right: 15px 678 | } 679 | 680 | .op-tieba-general-lookmore { 681 | height: 24px; 682 | line-height: 24px; 683 | margin-top: -2px; 684 | position: relative 685 | } 686 | 687 | .op-tieba-general-mainpic-toleft { 688 | width: 79px; 689 | float: right; 690 | height: 79px; 691 | overflow: hidden; 692 | position: relative 693 | } 694 | 695 | .op-tieba-general-xuan { 696 | margin-right: 13px 697 | } 698 | 699 | .opr-recommends-merge-title { 700 | text-decoration: none 701 | } 702 | 703 | .opr-recommends-merge-title:hover { 704 | text-decoration: underline 705 | } 706 | 707 | .opr-recommends-merge-imgtext { 708 | display: block 709 | } 710 | 711 | .opr-recommends-merge-hide { 712 | display: none 713 | } 714 | 715 | .opr-recommends-merge-p { 716 | position: relative; 717 | _zoom: 1 718 | } 719 | 720 | .opr-recommends-merge-item { 721 | text-align: center 722 | } 723 | 724 | .opr-recommends-merge-mask { 725 | position: absolute; 726 | top: 0; 727 | left: 0; 728 | width: 100%; 729 | _background: 0 0; 730 | background: -webkit-radial-gradient(center, closest-side, rgba(255, 255, 255, 0), rgba(0, 0, 0, .03)); 731 | background: -moz-radial-gradient(center, closest-side, rgba(255, 255, 255, 0), rgba(0, 0, 0, .03)); 732 | background: -o-radial-gradient(center, closest-side, rgba(255, 255, 255, 0), rgba(0, 0, 0, .03)); 733 | background: -ms-radial-gradient(center, closest-side, rgba(255, 255, 255, 0), rgba(0, 0, 0, .03)) 734 | } 735 | 736 | .opr-recommends-merge-more-btn i { 737 | cursor: pointer 738 | } 739 | 740 | .opr-recommends-merge-layerbtn { 741 | position: absolute; 742 | right: 0; 743 | bottom: 0; 744 | width: 1.23em; 745 | height: 1.23em; 746 | background: url(../imglayericon.png) no-repeat; 747 | _background-image: url(../imglayericon.gif) 748 | } 749 | 750 | .opr-recommends-merge-layerbtn1, 751 | .opr-recommends-merge-layerbtn2 { 752 | background-position: -48px 0 753 | } 754 | 755 | .opr-recommends-merge-layerbtn1, 756 | .opr-recommends-merge-layerbtn3 { 757 | background-color: #999 758 | } 759 | 760 | .opr-recommends-merge-layerbtn1:hover, 761 | .opr-recommends-merge-layerbtn2, 762 | .opr-recommends-merge-layerbtn3:hover, 763 | .opr-recommends-merge-layerbtn4 { 764 | background-color: #38f 765 | } 766 | 767 | .opr-recommends-merge-layerbtn3:hover, 768 | .opr-recommends-merge-layerbtn4:hover { 769 | background-position: -24px 0 770 | } 771 | 772 | .opr-recommends-merge-layer { 773 | padding: 4px 9px; 774 | width: 350px 775 | } 776 | 777 | .opr-recommends-merge-layer table { 778 | border-collapse: collapse; 779 | border-padding: 0 780 | } 781 | 782 | .opr-recommends-merge-layer td { 783 | font-size: 1em; 784 | line-height: 1.67; 785 | vertical-align: top 786 | } 787 | 788 | .opr-recommends-merge-lastspan { 789 | display: none 790 | } 791 | 792 | .opr-recommends-merge-mbGap { 793 | margin-bottom: 28px 794 | } 795 | 796 | .container_l .opr-recommends-merge-lastspan { 797 | display: block 798 | } 799 | 800 | .container_l .cr-content-narrow .opr-recommends-merge-lastspan { 801 | display: none 802 | } 803 | 804 | .opr-recommends-merge-dodge-wrap { 805 | margin-bottom: 24px; 806 | font-size: 1.1em 807 | } 808 | 809 | .opr-recommends-merge-user-layer { 810 | width: 235px; 811 | position: absolute; 812 | border: 1px solid #eee; 813 | border-radius: 2px; 814 | margin-top: 10px; 815 | margin-left: -60px; 816 | *margin-left: -140px; 817 | z-index: 998; 818 | background: #fff; 819 | color: #333; 820 | font-size: 13px; 821 | text-align: center; 822 | padding: 14px 15px 823 | } 824 | 825 | .opr-recommends-merge-user-layer button { 826 | margin-top: 12px; 827 | font-size: 12px 828 | } 829 | 830 | .opr-recommends-merge-user-layer img { 831 | top: 2px; 832 | position: relative 833 | } 834 | 835 | .opr-recommends-merge-user-secondBtn { 836 | margin-left: 8px 837 | } 838 | 839 | .opr-recommends-merge-user-secondBtn i { 840 | -ms-transform: rotate(180deg); 841 | -moz-transform: rotate(180deg); 842 | -webkit-transform: rotate(180deg); 843 | -o-transform: rotate(180deg) 844 | } 845 | 846 | .opr-recommends-merge-user-layer-tips { 847 | position: absolute; 848 | margin-top: 5px; 849 | margin-left: 67px; 850 | *margin-left: -22px; 851 | border-left: 6px solid transparent; 852 | border-right: 6px solid transparent; 853 | border-bottom: 6px solid #eee; 854 | width: 0; 855 | height: 0; 856 | z-index: 999 857 | } 858 | 859 | .opr-recommends-merge-content { 860 | position: relative 861 | } 862 | 863 | .opr-recommends-merge-user-layer-tips-fff { 864 | margin-top: 6px; 865 | border-bottom: 6px solid #fff 866 | } 867 | 868 | .opr-recommends-merge-user-layer-hide { 869 | display: none 870 | } 871 | 872 | .opr-recommends-merge-user-layer-icon { 873 | position: relative; 874 | top: 2px; 875 | width: 14px; 876 | height: 14px 877 | } 878 | 879 | .opr-recommends-merge-user-layer-con { 880 | position: absolute; 881 | width: 312px; 882 | height: 140px; 883 | top: 0; 884 | padding-top: 20px; 885 | z-index: 999 886 | } 887 | 888 | .opr-toplist-title { 889 | position: relative 890 | } 891 | 892 | .opr-toplist-table .opr-toplist-right { 893 | text-align: right; 894 | white-space: nowrap 895 | } 896 | 897 | .opr-toplist-info { 898 | color: #666; 899 | text-align: right 900 | } 901 | 902 | .opr-toplist-info a { 903 | color: #666 904 | } 905 | 906 | .opr-toplist-st { 907 | margin-bottom: 2px 908 | } 909 | 910 | .container_s #content_right .opui-advert2-img-big { 911 | width: 259px; 912 | _height: 70px 913 | } 914 | 915 | .container_l #content_right .opui-advert2-img-big { 916 | _width: 351px; 917 | _height: 95px 918 | } 919 | 920 | .opr-toplist-more { 921 | position: absolute; 922 | right: -10px; 923 | top: 0 924 | } 925 | 926 | .opr-toplist-more-currentBtn { 927 | color: #666 928 | } 929 | 930 | .opr-toplist-more-chevron { 931 | padding: 10px; 932 | cursor: pointer 933 | } 934 | 935 | .opr-toplist-more-chevron-left { 936 | padding-right: 2px 937 | } 938 | 939 | .opr-toplist-more-chevron-right { 940 | padding-left: 2px 941 | } 942 | 943 | .opr-toplist-more-btn { 944 | display: inline-block; 945 | width: 4px; 946 | height: 4px; 947 | margin: 0 3px; 948 | *margin-top: -8px; 949 | overflow: hidden; 950 | background: url(../img/toplist_dot.png) -4px 0 no-repeat 951 | } 952 | 953 | .opr-toplist-more-currentBtn { 954 | background-position: 0 0 955 | } 956 | 957 | /* 小屏幕(平板,大于等于 768px) */ 958 | @media (max-width: 360px) { 959 | .op-calendar-new-right{ 960 | display:none; 961 | } 962 | .c-container{ 963 | width:409px; 964 | border-right: 2px solid #57abff; 965 | } 966 | } -------------------------------------------------------------------------------- /dist/css/calendar.min.css: -------------------------------------------------------------------------------- 1 | .op-calendar-new-table td a *,.opr-recommends-merge-more-btn i{cursor:pointer}.op-calendar-new-box{border:2px solid #57abff;border-right:0;height:366px;position:relative;z-index:1}.op-calendar-new-holiday-box,.op-calendar-new-month-box,.op-calendar-new-year-box{float:left}.op-calendar-new-month-box,.op-calendar-new-year-box{margin-right:7px}.op-calendar-new-year-box{width:80px}.op-calendar-new-month-box{width:61px;padding:0 22px;position:relative;z-index:1}.op-calendar-new-holiday-box{width:95px}.op-calendar-new-select-box{height:26px;float:left;zoom:1;visibility:hidden}.op-calendar-new-backtoday{float:right;width:52px}.op-calendar-new-left{padding:10px;width:385px;position:absolute;z-index:1;left:0}.op-calendar-new-right{color:#fff;text-align:center;margin-left:406px;height:368px;filter:progid: DXImageTransform.Microsoft.gradient(startColorstr=#55aaff, endColorstr=#73b9ff, grandientType=0);background:#5caeff;background:-webkit-gradient(linear,0 0,0 100%,from(#5af),to(#73b9ff));background:-moz-linear-gradient(top,#5af,#73b9ff)}.op-calendar-new-table-box{float:left}.op-calendar-new-month-box .c-dropdown2-btn-icon-border{border-color:transparent;background-color:transparent!important}.op-calendar-new .c-dropdown2 .c-dropdown2-btn-icon{padding-left:0}.op-calendar-new-next-month,.op-calendar-new-prev-month{position:absolute;top:0;display:block;width:21px;border:1px solid #999;border-bottom-color:#d8d8d8;background:#fafafa;height:24px;text-align:center;line-height:24px;text-decoration:none;color:#7a7a7a;font-weight:700;font-family:Simsun,Simhei,sans-serif;z-index:205}.op-calendar-new-prev-month{left:0;border-right-color:#d8d8d8}.op-calendar-new-next-month{right:0;border-left-color:#d8d8d8}.op-calendar-new-next-month:hover,.op-calendar-new-prev-month:hover{color:#389cff;border-color:#389cff;border-left:1px solid #389cff}.op-calendar-new-table{width:385px;border-collapse:collapse;border-spacing:0}.op-calendar-new-table td,.op-calendar-new-table th{width:55px;height:54px;border-top:1px solid #c8cacc;padding:0}.op-calendar-new-relative{position:relative;width:100%;zoom:1}.op-calendar-new-table th{height:33px;border-color:#5af;font-weight:400;font-size:14px}.op-calendar-new-table-six td{height:45px}.op-calendar-new-table td a{display:block;width:48px;border-right:1px solid #fff;height:33px;padding:11px 3px 10px;text-align:center;text-decoration:none;line-height:1;white-space:nowrap;overflow:hidden}.op-calendar-new-table-six td a{padding:6px 3px}.op-calendar-new-table td .op-calendar-new-table-border,.op-calendar-new-table td .op-calendar-new-table-selected,.op-calendar-new-table td a:hover{padding:8px 0 7px;width:48px;border:3px solid #fb0;position:static}.op-calendar-new-table-six td .op-calendar-new-table-border,.op-calendar-new-table-six td .op-calendar-new-table-selected,.op-calendar-new-table-six td a:hover{padding:3px 0}.op-calendar-new-daynumber{display:block;height:22px;font-size:18px;color:#000}.op-calendar-new-table-almanac{display:block;color:#999;font-size:12px}.op-calendar-new-table-festival .op-calendar-new-table-almanac,.op-calendar-new-table-weekend .op-calendar-new-daynumber,th.op-calendar-new-table-weekend{color:#e02d2d}.op-calendar-new-table-other-month .op-calendar-new-daynumber,.op-calendar-new-table-other-month .op-calendar-new-table-almanac{color:#bfbfbf}.op-calendar-new-table-today .op-calendar-new-daynumber,.op-calendar-new-table-today .op-calendar-new-table-almanac{color:#fff}.op-calendar-new-table-today{background:#fb0}.op-calendar-new-table td .op-calendar-new-table-rest,.op-calendar-new-table td .op-calendar-new-table-work{background:#fff0f0}.op-calendar-new-table td .op-calendar-new-table-work{background:#f5f5f5}.op-calendar-new-table-holiday-sign{position:absolute;left:0;top:0;display:block;width:15px;height:15px;color:#fff;background:#f43;text-align:left;text-indent:1px;line-height:14px;overflow:hidden}.op-calendar-new-table-work .op-calendar-new-table-holiday-sign{background:#969799}.op-calendar-new-table-other-month .op-calendar-new-table-holiday-sign{filter:alpha(opacity=50);opacity:.5}.op-calendar-new-right-date{height:48px;line-height:48px}.op-calendar-new-right-day{position:relative;width:75px;height:75px;margin:0 auto;line-height:76px;font-size:52px;background:#fb0;border-radius:3px;box-shadow:1px 2px 5px rgba(0,0,0,.1),-1px 2px 5px rgba(0,0,0,.1)}.op-calendar-new-right-lunar span{display:block}.op-calendar-new-right-almanac{margin:10px auto 0;width:110px;border-top:2px solid #94c9ff;padding-top:10px;line-height:18px;height:155px}.op-calendar-new-right-almanac span{display:block;width:55px;float:left;white-space:nowrap;overflow:hidden}.op-calendar-new-right-almanac i{display:block;width:30px;height:30px;margin:0 auto 5px}.op-calendar-hover-avoid i,.op-calendar-hover-suit i,.op-calendar-new-right-almanac i{font:24px/30px 'Microsoft Yahei';text-shadow:2px 2px 1px rgba(0,0,0,.1);text-align:center;color:#fff}.op-calendar-new-right-hover .op-calendar-hover-almanac{display:block}.op-calendar-hover-almanac{display:none;position:absolute;width:210px;right:-231px;top:198px;background:#fff;padding:15px 10px;border:1px solid #5fafff;color:#333;box-shadow:4px 4px rgba(0,0,0,.05);z-index:100}.op-calendar-almanac-arrow{position:absolute;top:20px;left:-11px;font:22px Simsun;color:#fff;text-shadow:0 -1px rgba(0,0,0,.05);z-index:1}.op-calendar-hover-avoid,.op-calendar-hover-suit{padding-left:40px;position:relative;display:block;min-height:30px;text-align:left}.op-calendar-hover-avoid i,.op-calendar-hover-suit i{display:block;position:absolute;top:0;left:0;width:30px;height:30px;background:#67b3ff}.op-calendar-hover-avoid i{background:#ff5040}.op-calendar-new-holidaytip{display:none;position:relative;background:#f7f7f7;padding:10px 10px 10px 0}.op-calendar-new-holidaytip p{margin-left:35px}.op-calendar-new-holidaytip-icon{position:absolute;left:0;top:10px;padding-left:10px;width:20px;height:20px;text-align:center;font:20px/20px Simsun;color:#61b0ff}.op-calendar-new-holidaytip-icon i{font:14px/20px Tahoma,Arial;position:absolute;width:20px;height:20px;right:0;top:0}.op-tieba-general-addnum i,.op-tieba-general-maintable i,.op-tieba-general-replay-time i{font-style:normal}.op-calendar-new-holidaystyle .op-calendar-new-box,.op-calendar-new-red-bg .op-calendar-new-box{border-color:#cb1c18}.op-calendar-new-holidaystyle .op-calendar-new-right,.op-calendar-new-red-bg .op-calendar-new-right{color:#fff;text-align:center;margin-left:406px;height:368px;filter:progid: DXImageTransform.Microsoft.gradient(startColorstr=#cb1c18, endColorstr=#f44f23, grandientType=0);background:#cb1c18;background:-webkit-gradient(linear,0 0,0 100%,from(#cb1c18),to(#f44f23));background:-moz-linear-gradient(top,#cb1c18,#f44f23)}.op-calendar-new-holidaystyle .op-calendar-new-right-almanac,.op-calendar-new-red-bg .op-calendar-new-right-almanac{border-top-color:#eb7563}.op-calendar-new-holidaystyle .op-calendar-new-table th,.op-calendar-new-red-bg .op-calendar-new-table th{border-color:#f55c4e}.op-calendar-new-holidaystyle .op-calendar-hover-almanac,.op-calendar-new-red-bg .op-calendar-hover-almanac{border-color:#cb1c18}.op-bk-polysemy-bold{font-weight:700}.op-bk-polysemy-other span{display:block}.op-bk-polysemy-space{white-space:nowrap}.op-bk-polysemy-oneother .op-bk-polysemy-move,.op-bk-polysemy-oneother span{margin-left:0}.op-bk-polysemy-focus{height:22px;line-height:1.69em;margin-bottom:2px;overflow:hidden}.op-bk-polysemy-focustext{float:left;display:inline-block;height:22px;padding:0 8px 0 30px;background:url(../img/bk_polyicon.png) 5px 0 no-repeat #3288ff;color:#fff}.op-bk-polysemy-focus a{display:inline-block;height:22px;line-height:1.69em;float:left;border-right:2px solid #fff;background:#f5f5f5;padding:0 8px;text-decoration:none;color:#333}.op-bk-polysemy-focus a.op-bk-polysemy_focusafirst{background:url(../img/bk_polyicon.png) 0 -22px no-repeat #f5f5f5}.op-bk-polysemy-focusf{height:23px;line-height:1.69em;margin-bottom:2px;overflow:hidden}.op-bk-polysemy-focusleft,.op-bk-polysemy-focusrightf,.op-bk-polysemy-focusrightf a,.op-bk-polysemy-focustextf{display:inline-block;height:21px;float:left}.op-bk-polysemy-focusleft{border:1px solid #38f}.op-bk-polysemy-focusrightf,.op-bk-polysemy-focustextf{border-top:1px solid #f0f0f0;border-bottom:1px solid #f0f0f0}.op-bk-polysemy-focustextf{padding-left:10px}.op-bk-polysemy-focustextf span{color:#38f}.op-bk-polysemy-focusrightf{border-right:1px solid #f0f0f0}.op-bk-polysemy-focusrightf span{display:inline-block;float:left;color:#ccc}.op-bk-polysemy-focusrightf a{line-height:1.54em;text-decoration:underline;border:none;background:#fff;padding:0 8px;color:#00c}.op-bk-polysemy-focusrightf a.op-bk-polysemy_focusrfirst{padding-left:4px;background:#fff;color:#00c}.op-bk-polysemy-album{position:relative;width:100%;display:block}.op-bk-polysemy-albumPr{position:relative}.op-bk-polysemy-albumMore{display:block;width:100%;height:18px;line-height:18px;background:#525252;background:rgba(82,82,82,.6);color:#fff;position:absolute;bottom:0;left:0;text-align:center;filter:alpha(opacity=60)}.op-bk-polysemy-albumBorder{width:99%;height:99%;position:absolute;border-right:1px solid #bfbfbf;border-bottom:1px solid #bfbfbf;right:-2px;bottom:-2px;overflow:hidden;z-index:59}.op-bk-polysemy-albumBorderSec{right:-4px;bottom:-4px}.op-tieba-general-chapter,.op-tieba-general-otherbar,.op-tieba-general-table td{line-height:24px;height:24px}.op-tieba-general-otherbar{margin-top:-2px;position:relative}.op-tieba-general-guanzhu,.op-tieba-general-subtitle{line-height:14px;height:14px;font-size:1em;margin-bottom:5px}.op-tieba-general-otherbar span{margin-left:5px;margin-right:5px;color:#999}.op-tieba-general-addnum,.op-tieba-general-graycolor,.op-tieba-general-replay-time{color:#666}.op-tieba-general-mainpic{position:relative}.op-tieba-general-photo{position:absolute;left:0;top:0;z-index:-1}.op-tieba-general-photo-link{line-height:0}.op-tieba-general-linktxt{display:inline-block}.op-tieba-general-pline{margin-bottom:3px}.op-tieba-general-maintable{padding-top:2px}.op-tieba-general-mainpl{padding-left:10px}.op-tieba-general-maintable td{padding-bottom:2px;padding-top:2px}.op-tieba-general-main-col{margin-top:-4px;position:relative}.op-tieba-general-main-col p{margin-top:1px}.op-tieba-general-right{margin-right:15px}.op-tieba-general-lookmore{height:24px;line-height:24px;margin-top:-2px;position:relative}.op-tieba-general-mainpic-toleft{width:79px;float:right;height:79px;overflow:hidden;position:relative}.op-tieba-general-xuan{margin-right:13px}.opr-recommends-merge-title{text-decoration:none}.opr-recommends-merge-title:hover{text-decoration:underline}.opr-recommends-merge-imgtext{display:block}.opr-recommends-merge-hide,.opr-recommends-merge-lastspan{display:none}.opr-recommends-merge-p{position:relative}.opr-recommends-merge-item{text-align:center}.opr-recommends-merge-mask{position:absolute;top:0;left:0;width:100%;background:-webkit-radial-gradient(center,closest-side,rgba(255,255,255,0),rgba(0,0,0,.03));background:-moz-radial-gradient(center,closest-side,rgba(255,255,255,0),rgba(0,0,0,.03));background:-o-radial-gradient(center,closest-side,rgba(255,255,255,0),rgba(0,0,0,.03));background:-ms-radial-gradient(center,closest-side,rgba(255,255,255,0),rgba(0,0,0,.03))}.opr-recommends-merge-layerbtn{position:absolute;right:0;bottom:0;width:1.23em;height:1.23em;background:url(../imglayericon.png) no-repeat}.opr-recommends-merge-layerbtn1,.opr-recommends-merge-layerbtn2{background-position:-48px 0}.opr-recommends-merge-layerbtn1,.opr-recommends-merge-layerbtn3{background-color:#999}.opr-recommends-merge-layerbtn1:hover,.opr-recommends-merge-layerbtn2,.opr-recommends-merge-layerbtn3:hover,.opr-recommends-merge-layerbtn4{background-color:#38f}.opr-recommends-merge-layerbtn3:hover,.opr-recommends-merge-layerbtn4:hover{background-position:-24px 0}.opr-recommends-merge-layer{padding:4px 9px;width:350px}.opr-recommends-merge-layer table{border-collapse:collapse;border-padding:0}.opr-recommends-merge-layer td{font-size:1em;line-height:1.67;vertical-align:top}.opr-recommends-merge-mbGap{margin-bottom:28px}.container_l .opr-recommends-merge-lastspan{display:block}.container_l .cr-content-narrow .opr-recommends-merge-lastspan,.opr-recommends-merge-user-layer-hide{display:none}.opr-recommends-merge-dodge-wrap{margin-bottom:24px;font-size:1.1em}.opr-recommends-merge-user-layer{width:235px;position:absolute;border:1px solid #eee;border-radius:2px;margin-top:10px;margin-left:-60px;z-index:998;background:#fff;color:#333;font-size:13px;text-align:center;padding:14px 15px}.opr-recommends-merge-user-layer button{margin-top:12px;font-size:12px}.opr-recommends-merge-user-layer img{top:2px;position:relative}.opr-recommends-merge-user-secondBtn{margin-left:8px}.opr-recommends-merge-user-secondBtn i{-ms-transform:rotate(180deg);-moz-transform:rotate(180deg);-webkit-transform:rotate(180deg);-o-transform:rotate(180deg)}.opr-recommends-merge-user-layer-tips{position:absolute;margin-top:5px;margin-left:67px;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #eee;width:0;height:0;z-index:999}.opr-recommends-merge-content{position:relative}.opr-recommends-merge-user-layer-tips-fff{margin-top:6px;border-bottom:6px solid #fff}.opr-recommends-merge-user-layer-icon{position:relative;top:2px;width:14px;height:14px}.opr-recommends-merge-user-layer-con{position:absolute;width:312px;height:140px;top:0;padding-top:20px;z-index:999}.opr-toplist-title{position:relative}.opr-toplist-table .opr-toplist-right{text-align:right;white-space:nowrap}.opr-toplist-info{color:#666;text-align:right}.opr-toplist-info a{color:#666}.opr-toplist-st{margin-bottom:2px}.container_s #content_right .opui-advert2-img-big{width:259px}.opr-toplist-more{position:absolute;right:-10px;top:0}.opr-toplist-more-chevron{padding:10px;cursor:pointer}.opr-toplist-more-chevron-left{padding-right:2px}.opr-toplist-more-chevron-right{padding-left:2px}.opr-toplist-more-btn{display:inline-block;width:4px;height:4px;margin:0 3px;overflow:hidden;background:url(../img/toplist_dot.png) -4px 0 no-repeat}.opr-toplist-more-currentBtn{color:#666;background-position:0 0}@media (max-width:360px){.op-calendar-new-right{display:none}.c-container{width:409px;border-right:2px solid #57abff}} -------------------------------------------------------------------------------- /dist/img/bk_polyicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/dist/img/bk_polyicon.png -------------------------------------------------------------------------------- /dist/img/bk_polyicon1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/dist/img/bk_polyicon1.gif -------------------------------------------------------------------------------- /dist/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/dist/img/favicon.ico -------------------------------------------------------------------------------- /dist/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/dist/img/favicon.png -------------------------------------------------------------------------------- /dist/img/icons_0e814c16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/dist/img/icons_0e814c16.png -------------------------------------------------------------------------------- /dist/img/icons_5c448026.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/dist/img/icons_5c448026.gif -------------------------------------------------------------------------------- /dist/img/layericon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/dist/img/layericon.gif -------------------------------------------------------------------------------- /dist/img/layericon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/dist/img/layericon.png -------------------------------------------------------------------------------- /dist/img/tip-arrow-bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/dist/img/tip-arrow-bottom.png -------------------------------------------------------------------------------- /dist/img/tip-arrow-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/dist/img/tip-arrow-top.png -------------------------------------------------------------------------------- /dist/img/tip-bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/dist/img/tip-bottom.png -------------------------------------------------------------------------------- /dist/img/tip-left-bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/dist/img/tip-left-bottom.png -------------------------------------------------------------------------------- /dist/img/tip-left-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/dist/img/tip-left-top.png -------------------------------------------------------------------------------- /dist/img/tip-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/dist/img/tip-left.png -------------------------------------------------------------------------------- /dist/img/tip-right-bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/dist/img/tip-right-bottom.png -------------------------------------------------------------------------------- /dist/img/tip-right-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/dist/img/tip-right-top.png -------------------------------------------------------------------------------- /dist/img/tip-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/dist/img/tip-right.png -------------------------------------------------------------------------------- /dist/img/tip-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/dist/img/tip-top.png -------------------------------------------------------------------------------- /dist/img/toplist_dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/dist/img/toplist_dot.png -------------------------------------------------------------------------------- /dist/js/calendar.min.js: -------------------------------------------------------------------------------- 1 | +function(){function a(a,n){var t=[];a=parseInt(a,10),n=parseInt(n,10);for(var r=1==n?a-1:a,o=1==n?12:n-1,l=12==n?a+1:a,y=12==n?1:n+1,w=h(a,n,1),v=p(a,n),f=p(r,o),m=w-1,b=7-((m+v)%7==0?7:(m+v)%7),g=f-m+1;f>=g;g++){var D=h(r,o,g);t.push({solarCalendar:{year:r,month:o,day:g,week:E[D-1],othermonth:!0}})}for(var g=1;v>=g;g++){var D=h(a,n,g);t.push({solarCalendar:{year:a,month:n,day:g,week:E[D-1],othermonth:!1}})}for(var g=1;b>=g;g++){var D=h(l,y,g);t.push({solarCalendar:{year:l,month:y,day:g,week:E[D-1],othermonth:!0}})}for(var g=0;g=u;u++){var p=l(u);if(1>s-p)break;s-=p}d.year=u,d.lunarYear=u;var h=t(d.year),y=!1;h>0&&(y=!0),isLeapMonth=!1;for(var u=1;12>=u;u++){var p=null;if(y&&u==h+1&&0==isLeapMonth?(isLeapMonth=!0,u--,p=r(d.year)):(isLeapMonth=!1,p=o(d.year,u)),0>s-p)break;s-=p}return u=13==u?1:u,d.month=(h==u&&isLeapMonth?"润":"")+C[u-1],d.day=M[s+1-1],d.lunarMonth=u,d.lunarDay=s+1,d}function n(a,n,d){function i(a,e,n){var l=t(a),d=!1;l>0&&(d=!0),isLeapMonth=!1;for(var i=0,c=1;e>c;c++)d&&c==l+1&&0==isLeapMonth?(isLeapMonth=!0,c--,days=r(a)):(isLeapMonth=!1,days=o(a,c)),i+=days;i+=n;var s=[];return s.push(i),e==l&&s.push(i+r(a)),s}var c=e(a,1,1),s=c.lunarYear,u=c.lunarMonth,p=c.lunarDay,h=l(s)-i(s,u,p),y=i(a,n,d);for(var w in y)y[w]+=h;var v=[];for(var w in y){var f=new Date(new Date(a,0,1).getTime()+864e5*y[w]),a=f.getFullYear(),n=f.getMonth()+1,d=f.getDate();v.push({year:a,month:n,day:d})}return v}function t(a){return 15&b[a-1899]}function r(a){return t(a)?65536&b[a-1899]?30:29:0}function o(a,e){return b[a-1899]&65536>>e?30:29}function l(a){var e,n=0;for(e=32768;e>8;e>>=1)n+=b[a-1899]&e?30:29;return n+r(a)}function d(a,e,n){function t(a){return x[a%10]+L[a%12]}function r(a){return t(a-1900+35)}function o(a,e){return t(12*(a-1900)+e+12)}function l(a,e,n){return t(Math.ceil((new Date(a,e-1,n)-new Date(1900,0,1))/864e5+10))}function d(a){var e=a-1900+35;return O[e%12]}function i(a,e){var n=new Date(31556925974.7*(a-1900)+6e4*g[e]+Date.UTC(1900,0,6,2,3,57));return n.getUTCDate()}function c(a,e,n){for(var t=null,r=0,o=0;24>o;o++){var l=i(a,o);o%2==0&&r++,r==e&&l==n&&(t=D[o])}return t}var s={},u=i(a,2*(e-1)),p=e>2||2==e&&n>=i(a,2)?a+1:a,h=n>=u?e:e-1;return s.year=r(p),s.month=o(a,h),s.day=l(a,e,n),s.zodiac=d(p),s.term=c(a,e,n),s}function i(a,e,n){e=10>e?"0"+e:e,n=10>n?"0"+n:n;var t=I["i"+e+n];if(t){if(t.split(",").length>1){var r=t.split(",")[1];return a>=r?t.split(",")[0]:null}return t}return null}function c(a,e,n){return e=10>e?"0"+e:e,n=10>n?"0"+n:n,H["d"+e+n]?H["d"+e+n]:null}function s(a,e,n){e=10>e?"0"+e:e,n=10>n?"0"+n:n;var t=window.Calendar;return t.Holiday&&t.Holiday["y"+a]?t.Holiday["y"+a]["d"+e+n]?t.Holiday["y"+a]["d"+e+n]:null:void 0}function u(a,e,n){e=10>e?"0"+e:e,n=10>n?"0"+n:n;var t=window.Calendar;return t.HuangLi&&t.HuangLi["y"+a]?t.HuangLi["y"+a]["d"+e+n]?t.HuangLi["y"+a]["d"+e+n]:null:void 0}function p(a,e){var n=[31,y(a)?29:28,31,30,31,30,31,31,30,31,30,31];return n[e-1]}function h(a,e,n){return 0==new Date(a,e-1,n).getDay()?7:new Date(a,e-1,n).getDay()}function y(a){return a%4==0&&a%100!=0||a%400==0}function w(e,n){var t=a(e,n),r=0;for(console.log(" %c公历 ","color:red"),console.log(" %s %s %s %s %s %s %s","星期一","星期二","星期三","星期四","星期五","星期六","星期日");r=o;o++)Calendar.Holiday&&Calendar.Holiday["y"+o]||t>=o&&r.push("lib/wt"+o+".js"),Calendar.HuangLi&&Calendar.HuangLi["y"+o]||r.push("lib/hl"+o+".js");DOM.getScript(r,e)}var f=1899,m=2100,b=[43856,19416,19168,42352,21717,53856,55632,91476,22176,39632,21970,19168,42422,42192,53840,119381,46400,54944,44450,38320,84343,18800,42160,46261,27216,27968,109396,11104,38256,21234,18800,25958,54432,59984,28309,23248,11104,100067,37600,116951,51536,54432,120998,46416,22176,107956,9680,37584,53938,43344,46423,27808,46416,86869,19872,42416,83315,21168,43432,59728,27296,44710,43856,19296,43748,42352,21088,62051,55632,23383,22176,38608,19925,19152,42192,54484,53840,54616,46400,46752,103846,38320,18864,43380,42160,45690,27216,27968,44870,43872,38256,19189,18800,25776,29859,59984,27480,21952,43872,38613,37600,51552,55636,54432,55888,30034,22176,43959,9680,37584,51893,43344,46240,47780,44368,21977,19360,42416,86390,21168,43312,31060,27296,44368,23378,19296,42726,42208,53856,60005,54576,23200,30371,38608,19415,19152,42192,118966,53840,54560,56645,46496,22224,21938,18864,42359,42160,43600,111189,27936,44448,84835,37744,18936,18800,25776,92326,59984,27424,108228,43744,41696,53987,51552,54615,54432,55888,23893,22176,42704,21972,21200,43448,43344,46240,46758,44368,21920,43940,42416,21168,45683,26928,29495,27296,44368,84821,19296,42352,21732,53600,59752,54560,55968,92838,22224,19168,43476,41680,53584,62034,54560],g=[0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758],D=["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"],C=["正月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],M=["初一","初二","初三","初四","初五","初六","初七","初八","初九","初十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十","卅一"],x=["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"],L=["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"],O=["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"],E=["星期一","星期二","星期三","星期四","星期五","星期六","星期日"],H={d0101:"春节 ",d0115:"元宵节",d0202:"龙头节",d0505:"端午节",d0707:"七夕节",d0715:"中元节",d0815:"中秋节",d0909:"重阳节",d1001:"寒衣节",d1015:"下元节",d1208:"腊八节",d1223:"小年"},I={i0202:"湿地日,1996",i0308:"妇女节,1975",i0315:"消费者权益日,1983",i0401:"愚人节,1564",i0422:"地球日,1990",i0501:"劳动节,1889",i0512:"护士节,1912",i0518:"博物馆日,1977",i0605:"环境日,1972",i0623:"奥林匹克日,1948",i1020:"骨质疏松日,1998",i1117:"学生日,1942",i1201:"艾滋病日,1988",i0101:"元旦",i0312:"植树节,1979",i0504:"五四青年节,1939",i0601:"儿童节,1950",i0701:"建党节,1941",i0801:"建军节,1933",i0903:"抗战胜利日,1945",i0910:"教师节,1985",i1001:"国庆节,1949",i1224:"平安夜",i1225:"圣诞节",i0214:"情人节",i0520:"母亲节,1913",i0630:"父亲节",i1144:"感恩节"};window.Calendar=window.Calendar||{},Calendar.getCalendar=a,Calendar.getSolarCalendar=n,Calendar.getLunarCalendar=e,Calendar.debugCalendar=w,Calendar.loadCalendarLib=v}(),+function(){function a(a,e){function n(a,e){var r=/<%([^%>]+)%>/g,o=/<%=([^%>]+)%>/g,l=null;if(/\W/.test(a)){var d="var p=[];with(obj||{}){p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(o,function(a,e){return"',"+e.replace(/\\'/g,"'")+",'"}).replace(r||null,function(a,e){return"');"+e.replace(/\\'/g,"'").replace(/[\r\n\t]/g," ")+"p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return p.join('');";l=new Function("obj",d)(e)}else l=t[a]||n(document.getElementById(a).innerHTML,e);return l}var t={};return n(a,e)}function e(a,e){e=e||document;var n=[];if("string"!=typeof a)return n.push(a),n;for(var t=e.querySelectorAll(a),r=0;r',r+="",r+="",r+="一",r+="二",r+="三",r+="四",r+="五",r+='六',r+='日',r+="";var o="";o+='";for(var l={relative:"op-calendar-new-relative",weekend:"op-calendar-new-table-weekend",festival:"op-calendar-new-table-festival",rest:"op-calendar-new-table-rest",today:"op-calendar-new-table-today",selected:"op-calendar-new-table-selected",othermonth:"op-calendar-new-table-other-month"},d=new Date,i=d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate(),s=e(".op-calendar-new-table-box").attr("date-selected"),u=1,p=0;p";for(var h=p;p+7>h;h++){var y=t[h].solarCalendar.year+"-"+t[h].solarCalendar.month+"-"+t[h].solarCalendar.day,w=t[h].solarCalendar.day,v=t[h].lunarCalendar.day,f=t[h].interFestival,m=t[h].domesticFestival,b=t[h].legalHoliday,g=t[h].chinaEra.term,D=t[h].solarCalendar.othermonth,C=D?l.othermonth:l.relative;y==i&&(C+=" "+l.today),h%7!=5&&h%7!=6||(C+=" "+l.weekend),b&&(C+=" "+l.rest),(g||f||m)&&(C+=" "+l.festival,v=g||f||m),y==s&&(C+=" "+l.selected);var M={dateClass:C,dateDay:y,solarDay:w,lunarDay:v,rest:b,othermonth:D};r+=DOM.template(o,M)}r+=""}r+="",r=u>6?e.template(r,{tableSix:"op-calendar-new-table-six"}):e.template(r,{tableSix:""}),e(".op-calendar-new-table-box").html(r)}function t(a,n,t){var r=c.getCalendar(a,n),o="";o+='

<%=today%> <%=week%>

',o+='

<%=dayTime%>

',o+='

',o+="<%=lunarMonth%><%=lunarDay%><%=eraYear%>年 【<%=zodiac%>】<%=eraMonth%>月 <%=eraDay%>日

",o+='
',o+='

',o+='<%=yDay%>',o+='<%=jDay%>

',o+="
";for(var l in r){var d=r[l].solarCalendar.year+"-"+r[l].solarCalendar.month+"-"+r[l].solarCalendar.day;if(d===a+"-"+n+"-"+t)break}var i=r[l];n=10>n?"0"+n:n,t=10>t?"0"+t:t;var s=i.almanac?i.almanac.y.split(".").slice(0,6).join("
"):"无",u=i.almanac?i.almanac.j.split(".").slice(0,6).join("
"):"无",p={today:a+"-"+n+"-"+t,dayTime:t,week:i.solarCalendar.week,lunarMonth:i.lunarCalendar.month,lunarDay:i.lunarCalendar.day,eraYear:i.chinaEra.year,eraMonth:i.chinaEra.month,eraDay:i.chinaEra.day,zodiac:i.chinaEra.zodiac,yDay:s,jDay:u};o=e.template(o,p),e(".op-calendar-new-right").html(o)}function r(a,n,t){for(var r=1899,o=2100,l={"default":"假期安排",i0101:"元旦 ",d0101:"春节 ",d0115:"元宵节",d0202:"龙头节",d0505:"端午节",d0707:"七夕节",d0715:"中元节",d0815:"中秋节",d0909:"重阳节",d1001:"寒衣节",d1015:"下元节",d1208:"腊八节",d1223:"小年"},d="",i=r+1;o>i;i++)d+='
  • '+i+"年
  • ";e(".op-calendar-new-year-box .c-dropdown2-btn").html(a+"年"),e(".op-calendar-new-year-box .c-dropdown2-btn").attr("data-value",a),e(".op-calendar-new-year-box .c-dropdown2-menubox").html(d);for(var d="",i=1;12>=i;i++)d+='
  • '+i+"月
  • ";e(".op-calendar-new-month-box .c-dropdown2-btn").html(n+"月"),e(".op-calendar-new-month-box .c-dropdown2-btn").attr("data-value",n),e(".op-calendar-new-month-box .c-dropdown2-menubox").html(d);var d="";for(var i in l)d+='
  • '+l[i]+"
  • ";e(".op-calendar-new-holiday-box .c-dropdown2-btn").html("假期安排"),e(".op-calendar-new-holiday-box .c-dropdown2-btn").attr("data-value","default"),e(".op-calendar-new-holiday-box .c-dropdown2-menubox").html(d),e(".op-calendar-new-table-box").attr("date-selected",a+"-"+n+"-"+t)}function o(a,n,t){e(".op-calendar-new-year-box .c-dropdown2-btn").attr("data-value",a),e(".op-calendar-new-year-box .c-dropdown2-btn").html(a+"年"),e(".op-calendar-new-month-box .c-dropdown2-btn").attr("data-value",n),e(".op-calendar-new-month-box .c-dropdown2-btn").html(n+"月"),t&&e(".op-calendar-new-table-box").attr("date-selected",a+"-"+n+"-"+t)}function l(){var a=e(".op-calendar-new-year-box .c-dropdown2-btn").attr("data-value"),n=e(".op-calendar-new-month-box .c-dropdown2-btn").attr("data-value"),t=i().date,r=e(".op-calendar-new-table-box").attr("date-selected");r=r&&r.length>0?r.split("-")[2]:0;var o={year:parseInt(a,10),month:parseInt(n,10),festival:t,selected:parseInt(r,10)};return o}function d(a){e(".op-calendar-new-holiday-box .c-dropdown2-btn").attr("data-value",a.date),e(".op-calendar-new-holiday-box .c-dropdown2-btn").html(a.name)}function i(){var a=e(".op-calendar-new-holiday-box .c-dropdown2-btn").attr("data-value"),n=e(".op-calendar-new-holiday-box .c-dropdown2-btn").html(),t={date:a,name:n};return t}var c=a||window.Calendar;c.UI={dropDownHTML:r,getDropDown:l,setDropDown:o,setFestival:d,getFestival:i,detailHTML:function(a,e,n){c.loadCalendarLib(a,function(){t(a,e,n)})},calendarHTML:function(a,e){c.loadCalendarLib(a,function(){n(a,e)})}},c.init=function(a){var e=a.getFullYear(),n=a.getMonth()+1,t=a.getDate();c.UI.dropDownHTML(e,n,t),c.UI.calendarHTML(e,n),c.UI.detailHTML(e,n,t)}}(Calendar,DOM),+function(a,e){function n(a){var e=t.UI.getDropDown(),n=e.year,r=e.month,o=(new Date).getDate(),l=e.festival,d=e.selected;if("default"!=l&&a){var i=parseInt(l.substring(1,3),10),c=parseInt(l.substring(3,5),10);if(l.startsWith("i"))r=i,o=c;else{var s=t.getSolarCalendar(n,i,c);n=s[0].year,r=s[0].month,o=s[0].day}t.UI.setDropDown(n,r,o),t.UI.calendarHTML(n,r),t.UI.detailHTML(n,r,o)}else t.UI.setFestival({date:"default",name:"假期安排"}),t.UI.setDropDown(n,r,d||o),t.UI.calendarHTML(n,r),t.UI.detailHTML(n,r,d||o)}var t=a||window.Calendar;e(".c-dropdown2").on("click",function(a){function t(a){var a=a?a:window.event;a.stopPropagation?a.stopPropagation():a.cancelBubble=!0}t(a);var r=a.currentTarget;e(".c-dropdown2-menu").hide(),e(".c-dropdown2-menu",r).toggle(),e(".c-dropdown2-option",r).on("mouseover",function(){e(".c-dropdown2-menubox li",r).removeClass("c-dropdown2-selected"),e(this).addClass("c-dropdown2-selected")}),e(".c-dropdown2-option",r).on("click",function(a){t(a),e(".c-dropdown2-btn",r).html(DOM(this).html()),e(".c-dropdown2-btn",r).attr("data-value",DOM(this).attr("data-value")),e(".c-dropdown2-menu",r).hide(),n("f"===e(this).attr("data-role"))}),e("body").on("click",function(){e(".c-dropdown2-menu").hide()})}),e(".op-calendar-new-table-box").on("click",function(a){var a=a?a:window.event,r=a.target||a.srcElement,o=r.getAttribute("date")||r.parentNode.getAttribute("date");if(o){var l=o.split("-")[0],d=o.split("-")[1],i=o.split("-")[2],c=r.getAttribute("date")?r:r.parentNode;e(".op-calendar-new-table-box a").removeClass("op-calendar-new-table-selected"),e(c).addClass("op-calendar-new-table-selected");var s=e(c).attr("data-othermonth");e(".op-calendar-new-table-box").attr("date-selected",o),0==s?t.UI.detailHTML(l,d,i):(t.UI.setDropDown(l,d),n())}}),e(".op-calendar-new-month-box").on("click",function(a){var r=a.target||a.srcElement,o=t.UI.getDropDown(),l=o.year,d=o.month;e(r).hasClass("op-calendar-new-prev-month")&&(l=d>1?l:l-1,d=d>1?d-1:12),e(r).hasClass("op-calendar-new-next-month")&&(l=12>d?l:l+1,d=12>d?d+1:1),t.UI.setDropDown(l,d),n()}),e(".op-calendar-new-backtoday").on("click",function(a){t.init(new Date)})}(Calendar,DOM),+function(a){var e=a||window.Calendar;e.init(new Date)}(Calendar); -------------------------------------------------------------------------------- /dist/lib/wt2014.js: -------------------------------------------------------------------------------- 1 | window.Calendar = window.Calendar||{}; 2 | window.Calendar.Holiday = window.Calendar.Holiday || {}; 3 | window.Calendar.Holiday.y2014 = { 4 | "d0101": 1, 5 | "d0131": 1, 6 | "d0201": 1, 7 | "d0202": 1, 8 | "d0203": 1, 9 | "d0204": 1, 10 | "d0205": 1, 11 | "d0206": 1, 12 | "d0405": 1, 13 | "d0407": 1, 14 | "d0501": 1, 15 | "d0502": 1, 16 | "d0503": 1, 17 | "d0602": 1, 18 | "d0908": 1, 19 | "d1001": 1, 20 | "d1002": 1, 21 | "d1003": 1, 22 | "d1004": 1, 23 | "d1005": 1, 24 | "d1006": 1, 25 | "d1007": 1 26 | }; -------------------------------------------------------------------------------- /dist/lib/wt2015.js: -------------------------------------------------------------------------------- 1 | window.Calendar = window.Calendar||{}; 2 | window.Calendar.Holiday = window.Calendar.Holiday || {}; 3 | window.Calendar.Holiday.y2015 = { 4 | "d0101": 1, 5 | "d0102": 1, 6 | "d0103": 1, 7 | "d0218": 1, 8 | "d0219": 1, 9 | "d0220": 1, 10 | "d0221": 1, 11 | "d0222": 1, 12 | "d0223": 1, 13 | "d0404": 1, 14 | "d0405": 1, 15 | "d0406": 1, 16 | "d0501": 1, 17 | "d0502": 1, 18 | "d0503": 1, 19 | "d0620": 1, 20 | "d0622": 1, 21 | "d0903": 1, 22 | "d0904": 1, 23 | "d0905": 1, 24 | "d0927": 1, 25 | "d1001": 1, 26 | "d1002": 1, 27 | "d1003": 1, 28 | "d1004": 1, 29 | "d1005": 1, 30 | "d1006": 1, 31 | "d1007": 1 32 | }; -------------------------------------------------------------------------------- /dist/lib/wt2016.js: -------------------------------------------------------------------------------- 1 | window.Calendar = window.Calendar||{}; 2 | window.Calendar.Holiday = window.Calendar.Holiday || {}; 3 | window.Calendar.Holiday.y2016 = { 4 | "d0101": 1, 5 | "d0102": 1, 6 | "d0103": 1, 7 | "d0207": 1, 8 | "d0208": 1, 9 | "d0209": 1, 10 | "d0210": 1, 11 | "d0211": 1, 12 | "d0212": 1, 13 | "d0213": 1, 14 | "d0402": 1, 15 | "d0403": 1, 16 | "d0404": 1, 17 | "d0430": 1, 18 | "d0501": 1, 19 | "d0502": 1, 20 | "d0609": 1, 21 | "d0610": 1, 22 | "d0611": 1, 23 | "d0915": 1, 24 | "d0916": 1, 25 | "d0917": 1, 26 | "d1001": 1, 27 | "d1002": 1, 28 | "d1003": 1, 29 | "d1004": 1, 30 | "d1005": 1, 31 | "d1006": 1, 32 | "d1007": 1 33 | }; 34 | 35 | /** 36 | * 元旦 01月01日~01月03日 37 | * 春节 02月07日~02月13日 38 | * 清明节 04月02日~04月04日 39 | * 劳动节 04月30日~05月02日 40 | * 端午节 06月09日~06月11日 41 | * 中秋节 09月15日~09月17日 42 | * 国庆节 10月01日~10月07日 43 | */ -------------------------------------------------------------------------------- /doc/html/css/layout.min.css: -------------------------------------------------------------------------------- 1 | /*! zybuluo */ 2 | 3 | .pace .pace-progress{background:#29d;position:fixed;z-index:2000;top:0;left:0;height:2px;-webkit-transition:width 1s;-moz-transition:width 1s;-o-transition:width 1s;transition:width 1s}.pace-inactive{display:none}body{}.theme-black{background-color:#444;color:#D6DBDF}.theme-white{background-color:#F9F9F5;color:#2C3E50}.table-striped-black tbody>tr:nth-child(2n+1)>td,.table-striped-black tbody>tr:nth-child(2n+1)>th{background-color:#333}.table-striped-white tbody>tr:nth-child(2n+1)>td,.table-striped-white tbody>tr:nth-child(2n+1)>th{background-color:rgba(102,128,153,.05)}hr{border:0;border-bottom:1px dashed #cfcfcf;margin:30px 0}.footnote{vertical-align:baseline;top:-8px;font-size:75%;line-height:0;position:relative}.footnotes small{color:#888;font-size:.9em}.footnotes{margin-bottom:20px}code{border:0;background-color:#D6DBDF;border-radius:4px;color:#2C3E50;font-size:90%;padding:2px 4px;white-space:nowrap}.code-black{background-color:#333;color:#D6DBDF}.toc ul{list-style-type:none}.fade{opacity:0;-webkit-transition:opacity .01s linear;-moz-transition:opacity .01s linear;-ms-transition:opacity .01s linear;-o-transition:opacity .01s linear;transition:opacity .01s linear}.red-on-black{color:#CD5C5C}.blue-on-black{color:#5BA4E5}a:hover{color:#5BA4E5}a:hover.red-on-black,a:hover.white-on-black{color:#F5F5F9}.white-on-black{color:#BBB}.whiter-on-black{color:#FFF;font-weight:700}.yellow-on-black{color:#FFA}body,button,input,select{font-family:PingFang SC,Hiragino Sans GB,Microsoft Yahei,WenQuanYi Micro Hei,sans-serif}h1,h2,h3,h4,h5,h6{font-weight:500;font-family:PingFang SC,Hiragino Sans GB,Helvetica Neue,Microsoft Yahei,WenQuanYi Micro Hei,sans-serif}.wmd-preview>p,.wmd-preview>pre,.wmd-preview>blockquote{margin:0 0 20px}.wmd-preview blockquote{padding:10px 15px;border-left-style:solid;border-left-width:10px}.white-blockquote{border-color:#D6DBDF;background:none repeat scroll 0 0 rgba(102,128,153,.05)}.black-blockquote{border-color:#333;background:none repeat scroll 0 0 rgba(51,51,51,.5)}.MathJax_Preview{color:inherit!important}blockquote p{margin-bottom:15px}blockquote p:last-child{margin-bottom:0}pre{border-width:0;padding:10px 15px;background:none repeat scroll 0 0 rgba(102,128,153,.05)}.wmd-preview dl{margin-bottom:20px}.wmd-preview dt,.wmd-preview dd{margin-bottom:5px;margin-top:5px;line-height:27px}.wmd-preview dt{font-weight:700}.wmd-preview dd{margin-left:40px}h1{margin:50px 0 20px;font-size:30px}h2{margin:35px 0 20px;font-size:26px}h3{margin:20px 0;font-size:21px}h4{font-size:18px}h5,h6{font-size:16px}.wmd-preview code,.wmd-preview pre{font-size:14px}.element-center{text-align:center;margin:0 auto}#wmd-button-bar{padding-bottom:5px;padding-top:5px;min-width:650px}#preview-button-bar{padding-bottom:5px;padding-top:5px}#wmd-button-bar,#preview-button-bar{height:40px}.wmd-button-bar,.preview-button-bar{background-color:#444;box-shadow:0 1px 1px rgba(0,0,0,.2);position:relative;z-index:50}.wmd-button-bar-full-shown{margin:0 auto;width:650px;border-bottom:1px solid #ddd}.preview-link>a{margin-left:15px;text-decoration:none}#toc-list{background-clip:padding-box;border-radius:4px;float:left;font-size:14px;list-style:none outside none;margin:2px 0 0;min-width:160px;position:absolute;padding:5px 0 20px;top:100%;z-index:1000}#toc-list .toc ul{margin-left:20px}#toc-list .toc>ul{margin:0}#toc-list a:hover{background:0 0;color:#005580;text-decoration:underline}#toc-list a{color:#08c;text-decoration:none;display:inline}#toc-list h3{margin:10px 0;padding-left:15px}#toc-list hr{margin:10px 0}.table-of-contents{overflow-x:hidden;overflow-y:auto;width:330px;max-height:400px;padding:5px 0}li.todo-list-item{list-style:none}li.todo-list-item i{margin:0 6px 0 -20px;vertical-align:middle}#upload-local-area{position:relative}#upload-local-button{margin-top:15px}#upload-local-info{position:absolute;top:20px;left:200px;color:#3a87ad}a.attachment-block:hover{text-decoration:none}a.attachment-block{position:relative}a.attachment-block .attachment-filename{position:absolute;left:60px;top:-30px;width:300px;line-height:16px}a.attachment-block .attachment-filesize{position:absolute;left:60px;top:0;width:300px;font-size:80%}#merge-editor{width:100%;overflow-y:scroll;background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}#merge-editor:focus{border-color:rgba(82,168,236,.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}span.insert{background:#c6ffc6}span.delete{background:#ffc6c6}#input-file-open-local-file{width:100%;height:42px;line-height:1.45;padding-top:14px;border-color:rgba(82,168,236,.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}#label-offline-local-file{margin-top:15px;margin-bottom:10px}#publish-password{margin-top:10px}.paid-user-color{color:#5eb95e!important}.dropdown{display:inline-block}ul.dropdown-menu{font-size:14px;padding:10px;color:#BBB}ul.dropdown-menu#signup-login-intro{min-width:250px}#info-menu{width:300px;padding-left:0;padding-right:0;cursor:default}#info-menu table{margin-bottom:10px;width:100%}#info-menu table,#info-menu td{border-width:0;border-bottom-left-radius:0;border-bottom-right-radius:0}#info-menu td.menu-label{padding:3px 20px;border-right:#333 1px solid;border-bottom:#333 1px solid}#info-menu td.menu-field{padding:3px 20px;border-bottom:#333 1px solid;text-align:right}#revision-list{width:300px;border-top-width:0;border-top-left-radius:0;border-top-right-radius:0;padding:0 0 10px;overflow-y:auto}#info-revision-label{padding:3px 20px;color:#5BA4E5}#file-list{width:500px;margin-top:50px;border-top-left-radius:0;border-top-right-radius:0;overflow-y:auto}#file-list-topbar{width:500px;border-bottom-left-radius:0;border-bottom-right-radius:0}#file-list-topbar #search-file-bar{display:block}#file-list-topbar #tag-file-bar{display:none}#search-file-bar a{display:inline;color:#888;font-size:13px}#search-file-bar a:hover,#search-file-bar a:focus{background-image:none;background-color:transparent}#search-file-bar a:hover{color:#fff}#file-list .tag-list{list-style-type:none;margin-left:10px}#file-list .tag-item{color:#5BA4E5}#file-list .tag-item:hover{color:#fff}#file-list .tag-list .tag-count{margin-right:30px}#file-list .item{border-right:solid 5px #444}#file-list li.selected-item{color:#fff;text-decoration:none;border-right:solid 5px #0081c2}#file-list li.selected-item>a{color:#fff}ul.dropdown-menu#about-menu{width:100px;max-height:180px;overflow-y:auto}ul.dropdown-menu .divider{border-bottom:#BBB 0 solid}ul.dropdown-menu{list-style-type:none;margin-left:0}ul.dropdown-menu li{line-height:30px}ul.dropdown-menu #search-file-textbox{margin-bottom:0;margin-right:10px;background-color:#444;color:#bbb;border:0;font-size:16px;width:300px}ul.dropdown-menu.theme-black li>a{color:#BBB}ul.dropdown-menu.theme-black li>a:hover{color:#FFF}ul.dropdown-menu.theme-white li>a{color:#333}ul.dropdown-menu.theme-white li>a:hover{color:#FFF}ul.dropdown-menu li i[class*=icon]{margin-right:10px;vertical-align:baseline}#editor-column,#preview-column{width:50%}.wmd-panel-editor{padding-left:20px;padding-right:20px}.wmd-panel-preview{padding-left:20px;padding-right:45px;position:relative}.wmd-panel-editor-full-shown{text-align:center;width:100%;overflow-y:scroll;overflow-x:hidden}.wmd-panel-editor-full-shown-ace{width:100%;overflow-y:hidden;overflow-x:hidden}.wmd-input,.wmd-input:focus,#md-section-helper{width:100%;border:0;padding:0 6px;box-shadow:0 1px 1px rgba(0,0,0,.075) inset;transition:border .2s linear 0s,box-shadow .2s linear 0s;font-size:16px;line-height:27px;resize:none;overflow-x:hidden;font-family:Menlo,"Ubuntu Mono",Consolas,"Courier New",Microsoft Yahei,Hiragino Sans GB,WenQuanYi Micro Hei,sans-serif}#md-section-helper{top:-100px;height:1px;position:absolute;overflow:auto;white-space:pre-wrap;word-wrap:break-word}.editor-reader-full-hidden{position:absolute;top:-1000px;z-index:-1}.editor-reader-full-shown{position:fixed;left:0;right:0;top:0;bottom:0;z-index:1000}.reader-full-toolbar-hidden{position:absolute;top:-1000px;z-index:-1}.reader-full-toolbar-shown{position:fixed;right:0;top:0;bottom:0;width:45px;z-index:1000;background-color:#444;opacity:.9;box-shadow:0 0 10px rgba(0,0,0,.2);padding-top:80px}.reader-full-topInfo-hidden{position:absolute;top:-1000px;z-index:-1}.reader-full-topInfo-shown{position:static;margin:0 auto;max-width:850px;padding-top:40px;font-size:16px;color:#AAA}.editor-reader-hidden{position:absolute;top:-1000px;z-index:-1;display:none!important}.editor-reader-hidden-always{position:absolute;top:-1000px;z-index:-1}.sequence-diagram,.flow-diagram{text-align:center;margin:0 auto}.sequence-diagram text,.flow-diagram text{font-size:15px!important;font-family:Arial!important}.theme-white.sequence-diagram [fill="#ffffff"],.theme-white.flow-diagram [fill="#ffffff"]{fill:#F9F9F5}.theme-white.sequence-diagram [stroke="#000000"],.theme-white.flow-diagram [stroke="#000000"]{stroke:#2C3E50}.theme-white.sequence-diagram [fill="#000"],.theme-white.flow-diagram [fill="#000"],.theme-white.sequence-diagram [fill="#000000"],.theme-white.flow-diagram [fill="#000000"],.theme-white.sequence-diagram [fill=black],.theme-white.flow-diagram [fill=black]{fill:#2C3E50}.theme-black.sequence-diagram [fill="#ffffff"],.theme-black.flow-diagram [fill="#ffffff"]{fill:#444}.theme-black.sequence-diagram [stroke="#000000"],.theme-black.flow-diagram [stroke="#000000"]{stroke:#D6DBDF}.theme-black.sequence-diagram [fill="#000"],.theme-black.flow-diagram [fill="#000"],.theme-black.sequence-diagram [fill="#000000"],.theme-black.flow-diagram [fill="#000000"],.theme-black.sequence-diagram [fill=black],.theme-black.flow-diagram [fill=black]{fill:#D6DBDF}.theme-white .MathJax_SVG [stroke=black]{stroke:#2C3E50}.theme-white .MathJax_SVG [fill=black]{fill:#2C3E50}.theme-black .MathJax_SVG [stroke=black]{stroke:#D6DBDF}.theme-black .MathJax_SVG [fill=black]{fill:#D6DBDF}.ace_search.right{border:1px solid #cbcbcb!important}.ace_search{background-color:#F9F9F5!important}#reader-full-topInfo>span,#reader-full-topInfo>code{margin-right:10px}#reader-full-topInfo a{font-size:16px;color:#AAA}.in-page-editor-buttons,.in-page-preview-buttons{margin-top:20px;position:fixed;z-index:10}.in-page-preview-buttons-full-reader{right:35px;top:-15px}.preview-container{overflow:auto}.wmd-preview{width:100%;font-size:16px;line-height:27px;overflow:auto;border:1px dashed #BBB;border-top-width:0;border-right-width:0;padding-left:5px;padding-right:5px}.wmd-preview li{line-height:27px}.wmd-preview ol.linenums>li{line-height:20px}.wmd-preview-full-reader{height:auto;border:0 none;margin:0 auto;max-width:850px;overflow-x:hidden;padding-bottom:50px;position:relative}.wmd-button-row,.preview-button-row{margin:10px 5px 5px;padding:0;height:auto}.wmd-spacer{width:0;height:20px;margin-left:30px;display:inline-block;list-style:none}.preview-button-full-reader{width:20px;height:20px;display:block;list-style:none;cursor:pointer;font-size:20px;margin:0 auto 20px}#reader-full-toolbar-home{margin-bottom:60px}.reader-full-toolbar-tail-shown{position:fixed;right:0;bottom:0;width:45px;z-index:1000;opacity:.9}.reader-full-toolbar-tail-hidden{position:absolute;top:-1000px;z-index:-1}.wmd-button,.preview-button,.in-page-button{width:20px;height:20px;display:inline-block;list-style:none;cursor:pointer;font-size:17px}.preview-link{height:20px;display:inline-block;list-style:none;cursor:pointer;font-size:16px}.wmd-button{margin-left:10px}.preview-link,.preview-button{margin-right:10px}.in-page-button{margin-right:15px}.wmd-button>span,.preview-button>span,.in-page-button>span{width:20px;height:20px;display:inline-block}.preview-link button{border:solid 0 #0081c2;background-color:#444;color:#5BA4E5;border-radius:4px;padding:2px 4px;vertical-align:baseline;font-size:14px}.preview-link button:hover{box-shadow:0 1px 1px rgba(0,0,0,.075) inset,0 0 8px rgba(82,168,236,.6)}.preview-link button:focus,.preview-link a:focus{outline-width:0}#editor-column ::-webkit-scrollbar,#preview-column ::-webkit-scrollbar{width:9px}#editor-column ::-webkit-scrollbar-track,#preview-column ::-webkit-scrollbar-track{background:rgba(102,128,153,.1)}#editor-column ::-webkit-scrollbar-thumb:hover,#preview-column ::-webkit-scrollbar-thumb:hover{background:rgba(102,128,153,.5)}#editor-column ::-webkit-scrollbar-thumb,#preview-column ::-webkit-scrollbar-thumb{background:rgba(102,128,153,.2)}#editor-column ::-webkit-scrollbar-corner,#editor-column ::-webkit-scrollbar-thumb:window-inactive,#preview-column ::-webkit-scrollbar-corner,#preview-column ::-webkit-scrollbar-thumb:window-inactive{background:rgba(102,128,153,.1)}#preview-button-bar ::-webkit-scrollbar{width:9px}#preview-button-bar ::-webkit-scrollbar-thumb:hover{background:rgba(91,164,245,.8)}#preview-button-bar ::-webkit-scrollbar-thumb{background:rgba(91,164,245,.6)}#preview-button-bar ::-webkit-scrollbar-corner,#preview-button-bar ::-webkit-scrollbar-thumb:window-inactive{background:rgba(91,164,245,.2)}.wmd-spacer1{left:40px}.wmd-spacer2{left:175px}.wmd-spacer3{left:300px}.wmd-prompt-background{background-color:#000}.wmd-prompt-dialog{border:1px solid #999;background-color:#F5F5F5}.wmd-prompt-dialog>div{font-size:.8em;font-family:arial,helvetica,sans-serif}.wmd-prompt-dialog>form>input[type=text]{border:1px solid #999;color:#000}.wmd-prompt-dialog>form>input[type=button]{border:1px solid #888;font-family:trebuchet MS,helvetica,sans-serif;font-size:.8em;font-weight:700}.clearfix:after{display:block;visibility:hidden;clear:both;height:0;content:" ";font-size:0}@-webkit-keyframes pop-upwards{0%{-webkit-transform:matrix(0.97,0,0,1,0,12);transform:matrix(0.97,0,0,1,0,12);opacity:0}20%{-webkit-transform:matrix(0.99,0,0,1,0,2);transform:matrix(0.99,0,0,1,0,2);opacity:.7}40%{-webkit-transform:matrix(1,0,0,1,0,-1);transform:matrix(1,0,0,1,0,-1);opacity:1}70%{-webkit-transform:matrix(1,0,0,1,0,0);transform:matrix(1,0,0,1,0,0);opacity:1}100%{-webkit-transform:matrix(1,0,0,1,0,0);transform:matrix(1,0,0,1,0,0);opacity:1}}@keyframes pop-upwards{0%{-webkit-transform:matrix(0.97,0,0,1,0,12);transform:matrix(0.97,0,0,1,0,12);opacity:0}20%{-webkit-transform:matrix(0.99,0,0,1,0,2);transform:matrix(0.99,0,0,1,0,2);opacity:.7}40%{-webkit-transform:matrix(1,0,0,1,0,-1);transform:matrix(1,0,0,1,0,-1);opacity:1}70%{-webkit-transform:matrix(1,0,0,1,0,0);transform:matrix(1,0,0,1,0,0);opacity:1}100%{-webkit-transform:matrix(1,0,0,1,0,0);transform:matrix(1,0,0,1,0,0);opacity:1}}.medium-toolbar-arrow-under:after,.medium-toolbar-arrow-over:before{position:absolute;left:50%;display:block;margin-left:-8px;width:0;height:0;border-style:solid;content:""}.medium-toolbar-arrow-under:after{border-width:8px 8px 0}.medium-toolbar-arrow-over:before{top:-8px;border-width:0 8px 8px}.medium-editor-toolbar{position:absolute;top:0;left:0;z-index:1000;visibility:hidden;font-size:16px;font-family:HelveticaNeue,Helvetica,Arial,sans-serif}.medium-editor-toolbar ul{margin:0;padding:0}.medium-editor-toolbar li{float:left;margin:0;padding:0;list-style:none}.medium-editor-toolbar li button{display:block;margin:0;padding:15px;cursor:pointer;font-size:14px;line-height:1.33;text-decoration:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.medium-editor-toolbar li .medium-editor-action-underline{text-decoration:underline}.medium-editor-toolbar li .medium-editor-action-pre{padding:15px 0;font-weight:100;font-size:12px;font-family:Menlo,monospace}.medium-editor-toolbar-active{visibility:visible;-webkit-animation:pop-upwards 160ms forwards linear;-ms-animation:pop-upwards 160ms forwards linear;animation:pop-upwards 160ms forwards linear;-webkit-transition:top .075s ease-out,left .075s ease-out;transition:top .075s ease-out,left .075s ease-out}button:focus{outline-width:0}.highlight-yellow{background-color:rgba(255,242,168,.6)}.highlight-green{background-color:rgba(133,246,150,.6)}.highlight-blue{padding-top:2px;padding-bottom:2px}.theme-white .highlight-blue{background-color:rgba(168,209,255,.8)}.theme-black .highlight-blue{background-color:rgba(168,209,255,.5)}.side-remark-hidden{position:absolute!important;top:-1000px;z-index:-1;display:none}.side-remark-shown{position:absolute;z-index:1000}.remark-icons{position:absolute;top:0;left:0;z-index:950}.remark-icon{position:absolute}.remark-icon-empty .icon-stack i{color:rgba(91,164,229,.6)}.remark-icon-hover .icon-stack i{color:#5BA4E5!important}.remark-icon-clicked .icon-stack i{color:#5BA4E5!important}.remark-count{position:absolute;top:-4px;left:5px;font-size:12px;font-weight:700;color:#FFF}.icon-stack{cursor:pointer}.icon-stack i{color:rgba(0,0,0,.4);font-size:22px}.remark-list{width:240px;font-size:14px;padding-bottom:20px}.remark-item{position:relative;padding:20px 0 20px 42px;border-top:1px solid}.remark-item:last-child{margin-bottom:20px;border-bottom:1px solid}.theme-white .remark-item{border-color:rgba(0,0,0,.1)}.theme-black .remark-item{border-color:rgba(0,0,0,.2)}.remark-item:hover{cursor:pointer}.remark-item .remark-head{position:absolute;left:0}.remark-reply .remark-delete-link{position:absolute;right:0;top:0;color:#CCC}.remark-reply .remark-delete-link .icon-remove{font-size:18px}.remark-reply .remark-delete-link:hover{color:#5BA4E5}.remark-item .remark-published-link{position:absolute;top:3px;right:10px;color:#CCC;font-size:13px;margin:0}.remark-item .remark-published-link:hover{color:#5BA4E5}.remark-options{position:absolute;top:0;right:0;list-style:none;color:#BBB;font-size:13px;margin:0}.remark-options li{padding:3px 10px 3px 3px;border-width:0 1px 1px;border-style:solid}.theme-white .remark-options li{border-color:rgba(0,0,0,.1)}.theme-black .remark-options li{border-color:rgba(0,0,0,.2)}.remark-options li:hover{color:#FFF;background-color:#08c;cursor:pointer}.remark-options li span{margin-left:5px}.remark-editor{margin-top:3px;word-wrap:break-word}.remark-editor p{margin:0}.remark-editor #default-span{color:#AAA;cursor:pointer}.remark-editor:focus{outline-width:0}.remark-reply,.new-reply{margin-top:14px;margin-bottom:6px;position:relative;padding-left:34px}.new-remark{position:relative;padding-left:42px}.new-remark .remark-head{position:absolute;left:0}.leave-reply{color:#08c;font-size:13px}.leave-remark{color:#BBB;font-size:14px}.leave-remark:hover,.leave-reply:hover{color:#5BA4E5;text-decoration:none;cursor:pointer}.leave-remark span{margin-right:15px}.remark-footer{margin-top:3px}.remark-footer button,.remark-reply-view-more{border:0;padding:0 6px 0 0;font-size:13px}.remark-footer button:hover,.remark-reply-view-more:hover{color:#5BA4E5;text-decoration:none}.remark-edit,.remark-cancel,.remark-delete{color:#AAA}.remark-notice{color:#AAA;font-size:12px}.remark-notice:before{content:'';display:block;margin:16px 0 10px;width:40px;height:1px;background:#CCC}.inline-error{color:#CD5C5C;font-size:12px}.unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tooltip-inner{max-width:250px;width:250px}.remark-reply .tooltip-inner{max-width:100px;width:100px}.medium-toolbar-arrow-under:after{top:36px;border-color:#333 transparent transparent}.medium-toolbar-arrow-over:before{top:-8px;border-color:transparent transparent #333}.medium-editor-toolbar{border:1px solid #000;background-color:#333;background:-webkit-linear-gradient(bottom,#333,rgba(36,36,36,.75));border-radius:3px;box-shadow:1px 2px 3px -2px #000;transition:top .075s ease-out,left .075s ease-out}.medium-editor-toolbar li button{min-width:36px;height:36px;padding:0 15px;border:0;border-right:1px solid #000;border-left:1px solid #333;border-left:1px solid rgba(255,255,255,.1);background-color:#333;color:#fff;background:linear-gradient(bottom,#333,rgba(36,36,36,.89));box-shadow:0 2px 2px rgba(0,0,0,.3);transition:background-color .2s ease-in}.medium-editor-toolbar li button:hover{background-color:#000}.medium-editor-toolbar li .medium-editor-button-first{border-top-left-radius:5px;border-bottom-left-radius:5px}.medium-editor-toolbar li .medium-editor-button-last{border-top-right-radius:5px;border-bottom-right-radius:5px} -------------------------------------------------------------------------------- /doc/html/css/mdeditor.lib.min.css: -------------------------------------------------------------------------------- 1 | /*! zybuluo */ 2 | 3 | .toast-title{font-weight:700}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#fff;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:.8;-ms-filter:alpha(Opacity=80);filter:alpha(opacity=80)}.toast-close-button:hover,.toast-close-button:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;-ms-filter:alpha(Opacity=40);filter:alpha(opacity=40)}button.toast-close-button{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{position:relative;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#fff;opacity:.8;-ms-filter:alpha(Opacity=80);filter:alpha(opacity=80)}#toast-container>:hover{-moz-box-shadow:0 0 12px #000;-webkit-box-shadow:0 0 12px #000;box-shadow:0 0 12px #000;opacity:1;-ms-filter:alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer}#toast-container>.toast-info{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=")!important}#toast-container>.toast-error{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=")!important}#toast-container>.toast-success{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==")!important}#toast-container>.toast-warning{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=")!important}#toast-container.toast-top-center>div,#toast-container.toast-bottom-center>div{width:300px;margin:auto}#toast-container.toast-top-full-width>div,#toast-container.toast-bottom-full-width>div{width:96%;margin:auto}.toast{background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4;-ms-filter:alpha(Opacity=40);filter:alpha(opacity=40)}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}} -------------------------------------------------------------------------------- /doc/html/css/prettify-cmd.css: -------------------------------------------------------------------------------- 1 | /* Pretty printing styles. Used with prettify.js. */ 2 | /* SPAN elements with the classes below are added by prettyprint. */ 3 | .pln { color: #000 } /* plain text */ 4 | 5 | @media screen { 6 | .str { color: #080 } /* string content */ 7 | .kwd { color: #008 } /* a keyword */ 8 | .com { color: #800 } /* a comment */ 9 | .typ { color: #606 } /* a type name */ 10 | .lit { color: #066 } /* a literal value */ 11 | /* punctuation, lisp open bracket, lisp close bracket */ 12 | .pun, .opn, .clo { color: #660 } 13 | .tag { color: #008 } /* a markup tag name */ 14 | .atn { color: #606 } /* a markup attribute name */ 15 | .atv { color: #080 } /* a markup attribute value */ 16 | .dec, .var { color: #606 } /* a declaration; a variable name */ 17 | .fun { color: red } /* a function name */ 18 | } 19 | 20 | /* Specify class=linenums on a pre to get line numbering */ 21 | ol.linenums { margin-top: 0; margin-bottom: 0; color: rgba(102, 128, 153, 0.4) } /* IE indents via margin-left */ 22 | ol.linenums { margin-left: 35px;} 23 | ol.linenums > li { padding-left: 15px;} 24 | pre.prettyprint { 25 | display: block; 26 | background-color: rgba(102, 128, 153, 0.05); 27 | box-shadow: 0 1px 2px rgba(255, 255, 255, 0.1) inset, 45px 0 0 rgba(102, 128, 153, 0.05) inset, 0 1px 0 rgba(102, 128, 153, 0.05); 28 | padding: 9.5px; 29 | } 30 | 31 | /* li.L0, li.L1, li.L2, li.L3, li.L5, li.L6, li.L7, li.L8 { list-style-type: none } */ 32 | 33 | /* Alternate shading for lines */ 34 | li.L1, li.L3, li.L5, li.L7, li.L9 { } 35 | 36 | /* Use higher contrast and text-weight for printable form. */ 37 | @media print, projection { 38 | .str { color: #060 } 39 | .kwd { color: #006; font-weight: bold } 40 | .com { color: #600; font-style: italic } 41 | .typ { color: #404; font-weight: bold } 42 | .lit { color: #044 } 43 | .pun, .opn, .clo { color: #440 } 44 | .tag { color: #006; font-weight: bold } 45 | .atn { color: #404 } 46 | .atv { color: #060 } 47 | } 48 | 49 | -------------------------------------------------------------------------------- /doc/html/img/app.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/doc/html/img/app.gif -------------------------------------------------------------------------------- /doc/html/img/calendar_api.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/doc/html/img/calendar_api.png -------------------------------------------------------------------------------- /doc/html/img/console_show.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/doc/html/img/console_show.png -------------------------------------------------------------------------------- /doc/html/img/construct.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/doc/html/img/construct.png -------------------------------------------------------------------------------- /doc/html/img/default-head.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/doc/html/img/default-head.jpg -------------------------------------------------------------------------------- /doc/html/img/dom_api.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/doc/html/img/dom_api.png -------------------------------------------------------------------------------- /doc/html/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/doc/html/img/favicon.png -------------------------------------------------------------------------------- /doc/html/img/main.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/doc/html/img/main.gif -------------------------------------------------------------------------------- /doc/html/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 万年历 Calender 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
    16 |
    17 | 18 | 19 | 20 | 2016-04-13 23:40 21 | 22 | 字数 1018 23 | 阅读 0 24 | 25 |
    26 |
    27 |
    28 |
    29 |

    目录结构万年历 Calender

    30 |
    31 |
    32 |

    一、摘要

    33 |

    34 |

    57 |

    58 |
    59 |
    60 |

    二、简介

    61 |

    本款万年历实现了农历,公历,天干地支,24节气,国内国际假日,每日宜忌(08年~20年),节假日(14年~16年)的查询。
    万年历界面采用百度日历UI界面,核心JS代码手动编写,没有依赖函数库。代码采用模块式开发,gulp构建,HBuilder开发。 62 | 另用node-webkit打包了一版桌面应用,方便使用。

    63 |

    预览

    64 |
    65 |

    三、开发流程

    66 |
      67 |
    • 选择一款日历UI(经过筛选,百度日历的UI比较简洁漂亮)。
    • 68 |
    • 编写JavaScript核心代码,实现农历、公历等日期信息参数的查询。
    • 69 |
    • 将JavaScript代码和UI界面,整合到一起。期间涉及DOM生成模块(实现模板功能),Event模块,CSS模块(切换主题和UI),日历算法核心模块,仿jQuery模块(工具类)。
    • 70 |
    • 使用gulp前端构建工具打包发布工程。
    • 71 |
    • 编写开发文档。
    • 72 |
    73 |
    74 |

    四、主要模块

    75 |
      76 |
    • 核心算法模块(calender.js)
    • 77 |
    • 仿jQuery模块,提供工具函数(common.js)
    • 78 |
    • Dom模块,生成HTML页面结构(dom.js)
    • 79 |
    • Event模块,日历中各种事件(event.js)
    • 80 |
    • 入口模块(main.js)
    • 81 |
    82 |
    83 |

    五、目录结构

    84 |

    目录结构

    85 |
    86 |

    六、接口文档

    87 |

    日历主要有两个全局变量window.Calendar和window.DOM,Calender类主要实现了日历相关的功能,DOM类实现了主要的jQuery函数。

    88 |
    89 |

    1. Calendar类

    90 |

    目录结构

    91 |
    92 |

    2. Dom类

    93 |

    目录结构

    94 |
    95 |

    七、调试日历

    96 |

    目录结构

    97 |
    98 |

    八、移动适配

    99 |
    1. /* 小屏幕(平板,大于等于 768px) */
    2. @media (max-width: 600px) {
    3. .op-calendar-new-right{
    4. display:none;
    5. }
    6. .c-container{
    7. width:409px;
    8. border-right: 2px solid #57abff;
    9. }
    10. }
    100 |

    目录结构

    102 |
    103 |

    九、后续开发

    104 |
      105 |
    • 模块之间通过require加载。
    • 106 |
    • CSS通过Less等css编译工具编译完成。
    • 107 |
    • 只做了简单媒体查询样式代码的编写,移动端适配的功能有待完善和开发。
    • 108 |
    • 对HTML结构要求比较苛刻,暂不支持模板替换和主题替换。
    • 109 |
    110 |
    111 |

    十、总结

    112 |

    限于时间原因,不能更多的书写详细的文档,还希望各位大神拜读源码了。通过该项目又一次发现了自己技术的不足,需要继续学习....

    113 |
    114 |

    作者 魏国兴
    邮箱 1607646162@qq.com
    2016 年 04月 13日

    115 |
    116 |
    117 | 118 | -------------------------------------------------------------------------------- /doc/pdf/index.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/doc/pdf/index.pdf -------------------------------------------------------------------------------- /doc/readme.txt: -------------------------------------------------------------------------------- 1 | ========================================= 2 | 一、需求 3 | ========================================= 4 | 5 | 有日期、星期、农历节气和国际节假日,能切换年、月、日。 6 | 界面好看,在手机上可以操作,有API可以扩展功能 7 | 8 | ========================================= 9 | 二、万年历制作流程 10 | ========================================= 11 | 1、选择一款日历UI(经过筛选,百度日历的UI比较简洁漂亮)。 12 | 2、编写JavaScript核心代码,实现农历、公历等日期信息参数的查询。 13 | 3、将JavaScript代码和UI界面,整合到一起。期间涉及DOM生成模块(实现模板功能),Event模块,CSS模块(切换主题和UI),日历算法核心模块,仿jQuery模块(工具类)。 14 | 4、使用gulp前端构建工具打包发布工程。 15 | 5、编写开发文档。 16 | 17 | ========================================= 18 | 三、核心模块 19 | ========================================= 20 | 1、核心算法模块(calender.js) 21 | 2、仿jQuery模块,提供工具函数(common.js) 22 | 3、Dom模块,生成HTML页面结构(dom.js) 23 | 4、Event模块,日历中各种事件(event.js) 24 | 5、入口模块(main.js) 25 | 26 | ========================================= 27 | 四、构建环境 28 | ========================================= 29 | 1、日历UI,UI和CSS样式,拔取的百度日历样式(时间和审美原因未能来及自己编写) 30 | 2、核心JS代码,按照模块编写 31 | 3、编辑工具HBuilder,项目构建工具gulp 32 | 33 | ========================================= 34 | 五、接口说明 35 | ========================================= 36 | 37 | 万年历接口 38 | Calendar 39 | |--init(Date) -- 入口函数,通过传入日期对象,构造日历 40 | | 41 | |--Holiday -- 法定假日,需要用过 loadCalendarLib加载,2014~2016年 42 | | 43 | |--HuangLi -- 黄历信息,需要用过loadCalendarLib加载 ,2008~2020年 44 | | 45 | |--debugCalendar(y,m) -- 用于在控制台输出日期信息,用于调试代码使用 46 | | 47 | |--getCalendar(y,m) -- 获取y年m月,对于的日期信息,包括农历,天干地支,节气,节假日等信息 48 | | 49 | |--getLunarCalendar(y,m,d) -- 获取到公历y年m月,对应的农历日期 50 | | 51 | |--getSolarCalendar(y,m,d) -- 获取到农历y年m月,对应的公历日期,m为润月的时候,会返回多个公历日期 52 | | 53 | |--loadCalendarLib(y,callback) -- 用于加载y年对应的黄历和法定假日信息,callback为库文件加载成功时候的回掉 54 | | 55 | |----Event对象 -- 暂时没有暴露任何事件方法 56 | | 57 | |----UI对象 58 | | 59 | |--calendarHTML(y,m) -- 用于生成y年m月对应的HTML结构视图,日历主体部分 60 | | 61 | |--detailHTML(y,m,d) -- 用于生成y年m月d日对应的HTML结构视图,日历右侧日期详情部分 62 | | 63 | |--dropDownHTML(y,m,d) -- 用于生成y年m月d日对应的HTML结构视图 ,下拉选择框年,月,节假日 64 | | 65 | |--getDropDown() -- 获取到下拉框的对应的年,月,节假日,以及当前日历选中的天 66 | | 67 | |--setDropDown(y,m,d) -- 设置下拉框的对应的年,月,以及当前日历选中的天 68 | | 69 | |--getFestival() -- 获取当前选中的节假日信息 70 | | 71 | |--setFestival(festival) -- 设置当前选中的节假日信息 eg: setFestival({date:'i0101',name'元旦'}) 72 | 73 | DOM接口 74 | DOM 75 | |--each(obj) -- 静态方法,遍历元素或数组 76 | | 77 | |--template(html,json) -- 静态方法,根据html和json生成对应的HTML结构,使用JSP标签结构<%%>,<%=%> 78 | | 79 | |--getScript(urls,callback) -- 静态方法,动态加载JS 80 | | 81 | |----prototype对象 -- 实现jQuery的部分功能 82 | | 83 | |--html() -- 用于获取和设置Dom元素的内容 84 | | 85 | |--addClass() -- 给Dom元素添加类名 86 | | 87 | |--removeClass() -- 给Dom元素移除类名 88 | | 89 | |--hasClass() -- 判断Dom元素是否拥有类名 90 | | 91 | |--show() -- 显示Dom元素 92 | | 93 | |--hide() -- 隐藏Dom元素 94 | | 95 | |--toggle() -- 交替显示和隐藏 Dom元素 96 | | 97 | |--attr() -- 获取和设置元素的属性值 98 | | 99 | |--on(type,handler) -- 给Dom元素绑定事件 100 | | 101 | |--off(type,handler) -- 取消Dom元素事件 102 | 103 | 104 | ========================================= 105 | 六、待优化 106 | ========================================= 107 | 1、模块之间通过require加载。 108 | 2、 CSS通过Less等css编译工具编译完成。 109 | 3、只做了简单媒体查询样式代码的编写,移动端适配的功能有待完善和开发。 110 | 4、对HTML结构要求比较苛刻,暂不支持模板替换和主题替换。 111 | 112 | 113 | ========================================= 114 | 七、作者 115 | ========================================= 116 | 作者 魏国兴 117 | 邮箱 1607646162@qq.com 118 | 2016 年 04月 13日 119 | 120 | 121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * gulpfile.js 4 | * 5 | * 采用Gulp构建项目 6 | * 7 | * 作者: 魏国兴 8 | * 日期: 20160412 9 | * 10 | * 组件安装 11 | * npm install gulp gulp-jshint gulp-minify-css gulp-uglify gulp-rename gulp-concat gulp-clean gulp-html-replace --save-dev 12 | * 13 | * 运行 14 | * gulp 15 | * 16 | */ 17 | 18 | // 引入 gulp及组件 19 | var gulp = require('gulp'), //基础库 20 | minifycss = require('gulp-minify-css'), //css压缩 21 | jshint = require('gulp-jshint'), //js检查(这里并没有使用校验模块,有待优化) 22 | uglify = require('gulp-uglify'), //js压缩 23 | rename = require('gulp-rename'), //重命名 24 | concat = require('gulp-concat'), //合并文件 25 | clean = require('gulp-clean'), //清空文件夹 26 | htmlreplace = require('gulp-html-replace');//替换HTML中的路径 27 | 28 | // 样式处理 29 | gulp.task('css', function () { 30 | var cssSrc = './css/*.css', 31 | cssDst = './dist/css'; 32 | 33 | gulp.src(cssSrc) 34 | .pipe(gulp.dest(cssDst)) 35 | .pipe(rename({ suffix: '.min' })) 36 | .pipe(minifycss()) 37 | .pipe(gulp.dest(cssDst)); 38 | }); 39 | 40 | // 图片处理 41 | gulp.task('img', function(){ 42 | var imgSrc = './img/*', 43 | imgDst = './dist/img'; 44 | gulp.src(imgSrc) 45 | .pipe(gulp.dest(imgDst)); 46 | }) 47 | 48 | // js处理 49 | gulp.task('js', function () { 50 | var jsSrc = './js/*.js', 51 | jsDst ='./dist/js'; 52 | 53 | gulp.src(jsSrc) 54 | .pipe(concat('calendar.js')) 55 | .pipe(gulp.dest(jsDst)) 56 | .pipe(rename({ suffix: '.min' })) 57 | .pipe(uglify()) 58 | .pipe(gulp.dest(jsDst)); 59 | }); 60 | // lib依赖库文件 61 | gulp.task('lib', function () { 62 | var jsSrc = './lib/*.js', 63 | jsDst ='./dist/lib'; 64 | 65 | gulp.src(jsSrc) 66 | .pipe(gulp.dest(jsDst)); 67 | }); 68 | 69 | // 替换html的路径 70 | gulp.task("html", function(){ 71 | var htmlSrc = './*.html', 72 | htmlDst ='./dist'; 73 | 74 | return gulp.src(htmlSrc) 75 | .pipe(htmlreplace({ 76 | 'reset':'css/reset.min.css', 77 | 'css':'css/calendar.min.css', 78 | 'js': 'js/calendar.min.js' 79 | })).pipe(gulp.dest(htmlDst)); 80 | 81 | }); 82 | 83 | // 清空图片、样式、js 84 | gulp.task('clean', function() { 85 | gulp.src(['./dist/*.html','./dist/css/*', './dist/lib/*','./dist/js/*','./dist/img/*'], {read: false}) 86 | .pipe(clean()); 87 | }); 88 | 89 | // 默认任务 清空图片、样式、js并重建 运行语句 gulp 90 | gulp.task('default', ['clean'], function(){ 91 | // 延时500ms,清除目录有一定延时 92 | setTimeout(function(){ 93 | gulp.start('html','css','lib','js','img'); 94 | },500); 95 | }); 96 | 97 | // 监听任务 运行语句 gulp watch 98 | gulp.task('watch',function(){ 99 | 100 | server.listen(port, function(err){ 101 | if (err) { 102 | return console.log(err); 103 | } 104 | 105 | // 监听css 106 | gulp.watch('./css/*.css', function(){ 107 | gulp.run('css'); 108 | }); 109 | // 监听images 110 | gulp.watch('./img/*', function(){ 111 | gulp.run('images'); 112 | }); 113 | // 监听js 114 | gulp.watch('./js/*.js', function(){ 115 | gulp.run('js'); 116 | }); 117 | // 监听lib 118 | gulp.watch('./lib/*.js', function(){ 119 | gulp.run('lib'); 120 | }); 121 | // 监听html 122 | gulp.watch('./*.html', function(){ 123 | gulp.run('html'); 124 | }); 125 | }); 126 | }); -------------------------------------------------------------------------------- /img/bk_polyicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/img/bk_polyicon.png -------------------------------------------------------------------------------- /img/bk_polyicon1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/img/bk_polyicon1.gif -------------------------------------------------------------------------------- /img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/img/favicon.ico -------------------------------------------------------------------------------- /img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/img/favicon.png -------------------------------------------------------------------------------- /img/icons_0e814c16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/img/icons_0e814c16.png -------------------------------------------------------------------------------- /img/icons_5c448026.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/img/icons_5c448026.gif -------------------------------------------------------------------------------- /img/layericon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/img/layericon.gif -------------------------------------------------------------------------------- /img/layericon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/img/layericon.png -------------------------------------------------------------------------------- /img/tip-arrow-bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/img/tip-arrow-bottom.png -------------------------------------------------------------------------------- /img/tip-arrow-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/img/tip-arrow-top.png -------------------------------------------------------------------------------- /img/tip-bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/img/tip-bottom.png -------------------------------------------------------------------------------- /img/tip-left-bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/img/tip-left-bottom.png -------------------------------------------------------------------------------- /img/tip-left-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/img/tip-left-top.png -------------------------------------------------------------------------------- /img/tip-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/img/tip-left.png -------------------------------------------------------------------------------- /img/tip-right-bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/img/tip-right-bottom.png -------------------------------------------------------------------------------- /img/tip-right-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/img/tip-right-top.png -------------------------------------------------------------------------------- /img/tip-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/img/tip-right.png -------------------------------------------------------------------------------- /img/tip-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/img/tip-top.png -------------------------------------------------------------------------------- /img/toplist_dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/img/toplist_dot.png -------------------------------------------------------------------------------- /install/setup.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mircode/calender/75c97da4df38c3ee17f190ead7aae2ce9056e74b/install/setup.exe -------------------------------------------------------------------------------- /js/calendar.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 说明: 该模块实现了对万年历的数据模型(Model)的计算。 3 | * 4 | * 该算法主要实现了一下功能: 5 | * 6 | * 1、计算某月公历信息。 7 | * 2、计算某月每一天对应的农历,天干地支,国际节日,国内节日,节气,放假安排,黄历信息(每日宜忌)等信息。 8 | * 9 | * 作者: 魏国兴 10 | * 日期: 20160407 11 | */ 12 | 13 | 14 | // 自执行匿名函数 15 | +function(){ 16 | 17 | 18 | /** 19 | * 万年历支持查询的年份范围 20 | */ 21 | var minYear = 1899;//最小年限 22 | var maxYear = 2100;//最大年限 23 | 24 | /** 25 | * 1899 - 2100 年的农历数据 26 | * 27 | * 数据格式: 0x04bd8是5个16进制数,20bit的数,代表公历日期为 1900年01月31日,农历日期为1900年01月01日 28 | * 29 | * 说明:农历中大月为30天,小月为29天 30 | * 31 | * 前4位(即0): 表示当年润月的大小月,为1则润大月,为0则润小月。 32 | * 中间12位(即4bd): 每位代表一个月,为1则为大月,为0则为小月。12位表示1到12个月 33 | * 后4位(即8): 代表这一年的润月月份,为0则不润。首4位要与末4位搭配使用 34 | */ 35 | var lunarInfo=[ 0x0ab50,//1899 36 | 0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,//1900-1909 37 | 0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977,//1910-1919 38 | 0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970,//1920-1929 39 | 0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950,//1930-1939 40 | 0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557,//1940-1949 41 | 0x06ca0,0x0b550,0x15355,0x04da0,0x0a5b0,0x14573,0x052b0,0x0a9a8,0x0e950,0x06aa0,//1950-1959 42 | 0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0,//1960-1969 43 | 0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b6a0,0x195a6,//1970-1979 44 | 0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,0x06a50,0x06d40,0x0af46,0x0ab60,0x09570,//1980-1989 45 | 0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0,//1990-1999 46 | 0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5,//2000-2009 47 | 0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930,//2010-2019 48 | 0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60,0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530,//2020-2029 49 | 0x05aa0,0x076a3,0x096d0,0x04bd7,0x04ad0,0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45,//2030-2039 50 | 0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0,//2040-2049 51 | 0x14b63,0x09370,0x049f8,0x04970,0x064b0,0x168a6,0x0ea50,0x06b20,0x1a6c4,0x0aae0,//2050-2059 52 | 0x0a2e0,0x0d2e3,0x0c960,0x0d557,0x0d4a0,0x0da50,0x05d55,0x056a0,0x0a6d0,0x055d4,//2060-2069 53 | 0x052d0,0x0a9b8,0x0a950,0x0b4a0,0x0b6a6,0x0ad50,0x055a0,0x0aba4,0x0a5b0,0x052b0,//2070-2079 54 | 0x0b273,0x06930,0x07337,0x06aa0,0x0ad50,0x14b55,0x04b60,0x0a570,0x054e4,0x0d160,//2080-2089 55 | 0x0e968,0x0d520,0x0daa0,0x16aa6,0x056d0,0x04ae0,0x0a9d4,0x0a2d0,0x0d150,0x0f252,//2090-2099 56 | 0x0d520];//2100 57 | 58 | // 二十四节气数据,节气点时间(单位是分钟)从0小寒起算 59 | var termInfo=[0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758]; 60 | // 二十四节气 61 | var solarTerm =['小寒','大寒','立春','雨水','惊蛰','春分','清明','谷雨','立夏','小满','芒种','夏至','小暑','大暑','立秋','处暑','白露','秋分','寒露','霜降','立冬','小雪','大雪','冬至']; 62 | 63 | // 农历月 64 | var monthCN=['正月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月']; 65 | // 农历日 66 | var dayCN=['初一','初二','初三','初四','初五','初六','初七','初八','初九','初十','十一','十二','十三','十四','十五','十六','十七','十八','十九','二十','廿一','廿二','廿三','廿四','廿五','廿六','廿七','廿八','廿九','三十','卅一']; 67 | 68 | // 天干 69 | var heavenlyStems=['甲','乙','丙','丁','戊','己','庚','辛','壬','癸']; 70 | // 地支 71 | var earthlyBranches=['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥']; 72 | // 地支十二生肖 73 | var chinaZodiac=['鼠','牛','虎','兔','龙','蛇','马','羊','猴','鸡','狗','猪']; 74 | 75 | // 星期 76 | var weekend=['星期一','星期二','星期三','星期四','星期五','星期六','星期日']; 77 | 78 | // 国内传统节日 79 | var domesticFestival={ 80 | 'd0101':'春节 ', 81 | 'd0115':'元宵节', 82 | 'd0202':'龙头节', 83 | 'd0505':'端午节', 84 | 'd0707':'七夕节', 85 | 'd0715':'中元节', 86 | 'd0815':'中秋节', 87 | 'd0909':'重阳节', 88 | 'd1001':'寒衣节', 89 | 'd1015':'下元节', 90 | 'd1208':'腊八节', 91 | 'd1223':'小年' 92 | } 93 | 94 | // 国际节日 95 | var interFestival={ 96 | 'i0202':'湿地日,1996', 97 | 'i0308':'妇女节,1975', 98 | 'i0315':'消费者权益日,1983', 99 | 'i0401':'愚人节,1564', 100 | 'i0422':'地球日,1990', 101 | 'i0501':'劳动节,1889', 102 | 'i0512':'护士节,1912', 103 | 'i0518':'博物馆日,1977', 104 | 'i0605':'环境日,1972', 105 | 'i0623':'奥林匹克日,1948', 106 | 'i1020':'骨质疏松日,1998', 107 | 'i1117':'学生日,1942', 108 | 'i1201':'艾滋病日,1988', 109 | 'i0101':'元旦', 110 | 'i0312':'植树节,1979', 111 | 'i0504':'五四青年节,1939', 112 | 'i0601':'儿童节,1950', 113 | 'i0701':'建党节,1941', 114 | 'i0801':'建军节,1933', 115 | 'i0903':'抗战胜利日,1945', 116 | 'i0910':'教师节,1985', 117 | 'i1001':'国庆节,1949', 118 | 'i1224':'平安夜', 119 | 'i1225':'圣诞节', 120 | 'i0214':'情人节', 121 | 'i0520':'母亲节,1913', 122 | 'i0630':'父亲节', 123 | 'i1144':'感恩节' 124 | } 125 | 126 | /********************************************** 127 | * 变量声明优化(待优化) 128 | * 1、通过一个var声明多个变量 129 | * 2、通过字符串存储数据,不使用数组存储数据 130 | **********************************************/ 131 | 132 | 133 | 134 | /** 135 | * 返回制定年月的日期视图 136 | * 137 | * eg: var cal=getCalendar(2016,4); 138 | * 139 | * 28 29 30 31 1 2 3 140 | * 4 5 6 7 8 9 10 141 | * 11 12 13 14 15 16 17 142 | * 18 19 20 21 22 23 24 143 | * 25 26 27 28 29 30 01 144 | * 145 | * 说明: 示例中只显示了公历的日期,真实的返回内容要包括 146 | * 农历,天干地支,国际节日,国内节日,节气,放假安排,黄历信息(每日宜忌) 147 | * 148 | * @param {Number} y 149 | * @param {Number} m 150 | */ 151 | function getCalendar(y,m){ 152 | var view=[]; 153 | 154 | y=parseInt(y,10); 155 | m=parseInt(m,10); 156 | 157 | var pYear=m==1?y-1:y; 158 | var pMonth=m==1?12:m-1; 159 | var nYear=m==12?y+1:y; 160 | var nMonth=m==12?1:m+1; 161 | 162 | // 当月第一天星期几 163 | var w=getWeek(y,m,1); 164 | 165 | // 获取当月天数 166 | var cDays=getMonthDays(y,m); 167 | // 获取上个月的天数 168 | var pDays=getMonthDays(pYear,pMonth); 169 | 170 | var pFill=w-1; // 需要向前补充的天数 171 | var nFill=7-((pFill+cDays)%7==0?7:(pFill+cDays)%7); // 需要向后补充的天数 172 | 173 | 174 | // 填充当月的公历日期 175 | for(var i=pDays-pFill+1;i<=pDays;i++){ 176 | var week=getWeek(pYear,pMonth,i); 177 | view.push({solarCalendar:{year:pYear,month:pMonth,day:i,week:weekend[week-1],othermonth:true}}); 178 | } 179 | for(var i=1;i<=cDays;i++){ 180 | var week=getWeek(y,m,i); 181 | view.push({solarCalendar:{year:y,month:m,day:i,week:weekend[week-1],othermonth:false}}); 182 | } 183 | for(var i=1;i<=nFill;i++){ 184 | var week=getWeek(nYear,nMonth,i); 185 | view.push({solarCalendar:{year:nYear,month:nMonth,day:i,week:weekend[week-1],othermonth:true}}); 186 | } 187 | 188 | // 遍历当月的每一天 189 | for(var i=0;i0){ 253 | isLeap=true; 254 | } 255 | isLeapMonth=false; 256 | for(var i=1;i<=12;i++){ 257 | var days=null; 258 | 259 | //如果有闰月则减去闰月对应的天数 260 | if (isLeap&&(i==leap+1)&&(isLeapMonth==false)){ 261 | isLeapMonth=true; 262 | i--; 263 | days=leapDays(res.year); 264 | 265 | // 如果没有闰月则减去正常月天数 266 | }else{ 267 | isLeapMonth=false; 268 | days=monthDays(res.year,i); 269 | } 270 | // 如果offset-days小于0了说明,offset找到对应月份 271 | if(offset-days<0) break; 272 | offset=offset-days; 273 | } 274 | i=i==13?1:i; 275 | res.month=(leap==i&&isLeapMonth?'润':'')+monthCN[i-1]; 276 | res.day=dayCN[offset+1-1]; // 偏移量加1,得到对应的农历日期数. offset为当月1月1日的偏移量 277 | 278 | res.lunarMonth=i; 279 | res.lunarDay=offset+1; 280 | 281 | return res; 282 | } 283 | /** 284 | * 285 | * 根据农历日期获取某天的阳历日期 286 | * 287 | * 288 | * 说明:如果当年存在闰月的情况,会返回2个阳历日期 289 | * 290 | * @param {Number} y 年 291 | * @param {Number} m 月 292 | * @param {Number} d 日 293 | */ 294 | function getSolarCalendar(y,m,d){ 295 | 296 | // 获取阳历y年01月01日对应的农历时间 297 | var lunarCalendar=getLunarCalendar(y,1,1); 298 | // 对应的农历日期 299 | var lunarYear=lunarCalendar.lunarYear; 300 | var lunarMonth=lunarCalendar.lunarMonth; 301 | var lunarDay=lunarCalendar.lunarDay; 302 | 303 | 304 | // 计算这个农历日期到y-m-d的天数 305 | 306 | var leaveDays=yearDays(lunarYear)-offsetDays(lunarYear,lunarMonth,lunarDay); 307 | var offset=offsetDays(y,m,d); 308 | 309 | for(var i in offset){ 310 | offset[i]+=leaveDays; 311 | } 312 | 313 | 314 | // 用这个天数+对应的阳历日期(y-01-01)计算出当前的阳历日期 315 | var res=[]; 316 | for(var i in offset){ 317 | var dateDay=new Date(new Date(y,0,1).getTime()+offset[i]*86400000); 318 | 319 | var y=dateDay.getFullYear(); 320 | var m=dateDay.getMonth()+1; 321 | var d=dateDay.getDate(); 322 | 323 | res.push({ 324 | year:y, 325 | month:m, 326 | day:d 327 | }); 328 | } 329 | 330 | /** 331 | * 计算农历y年1月1日到农历y年m月d日的所差的天数 332 | * @param {Number} y 333 | * @param {Number} m 334 | * @param {Number} d 335 | */ 336 | function offsetDays(y,m,d){ 337 | 338 | // 当年闰月的月份 339 | var leap=leapMonth(y); 340 | //设定当年是否有闰月 341 | var isLeap=false; 342 | if(leap>0){ 343 | isLeap=true; 344 | } 345 | isLeapMonth=false; 346 | var offset=0; 347 | for(var i=1;i>m))?30:29); 407 | } 408 | /** 409 | * 返回y年农历的总天数 410 | * @param {Number} y 年 411 | */ 412 | function yearDays(y) { 413 | var i,sum = 0; 414 | for (i=0x08000;i>0x00008;i>>=1) { 415 | sum+=(lunarInfo[y-1899]&i)?30:29; 416 | } 417 | return (sum+leapDays(y)); // y年的天数再加上当年闰月的天数 418 | } 419 | 420 | 421 | /** 422 | * 423 | * 根据日期获取某天的天干地支 424 | * 425 | * @param {Number} y 年 426 | * @param {Number} m 月 427 | * @param {Number} d 日 428 | */ 429 | function getChinaEra(y,m,d){ 430 | var res={}; 431 | 432 | var firstTerm=getTerm(y,(m-1)*2); //某月第一个节气开始日期 433 | var gzYear=(m>2||m==2&&d>=getTerm(y,2))?y+1:y;//干支所在年份 434 | var gzMonth=d>=firstTerm?m:m-1; //干支所在月份(以节气为界) 435 | 436 | 437 | res.year=getEraYear(gzYear); 438 | res.month=getEraMonth(y,gzMonth); 439 | res.day=getEraDay(y,m,d); 440 | 441 | res.zodiac=getYearZodiac(gzYear); 442 | res.term=getYearTerm(y,m,d); 443 | 444 | 445 | 446 | 447 | /***************************************** 448 | * 计算天干地支节气相关函数 449 | *****************************************/ 450 | /** 451 | * num 60进制中的位置(把60个天干地支编码成60进制的数) 452 | * @param {Number} num 453 | */ 454 | function calculate (num) { 455 | return heavenlyStems[num%10]+earthlyBranches[num%12] 456 | } 457 | /** 458 | * 获取干支纪年 459 | * @param {Number} y 年 460 | */ 461 | function getEraYear(y) { 462 | return calculate(y-1900+35);// 1900年前一年为乙亥年,60进制编码为35 463 | } 464 | /** 465 | * 获取干支纪月 466 | * @param {Number} y 年 467 | * @param {Number} m 月 468 | */ 469 | function getEraMonth(y,m) { 470 | return calculate((y-1900)*12+m+12); // 1900年1月小寒以前为丙子月,在60进制中排12 471 | } 472 | /** 473 | * 获取干支纪日 474 | * @param {Number} y 年 475 | * @param {Number} m 月 476 | * @param {Number} d 日 477 | */ 478 | function getEraDay(y,m,d) { 479 | return calculate(Math.ceil((new Date(y,m-1,d)-new Date(1900,0,1))/86400000+10));// 甲戌 480 | } 481 | /** 482 | * 获取生肖 483 | * @param {Number} y 干支所在年(默认以立春前的公历年作为基数) 484 | */ 485 | function getYearZodiac(y){ 486 | var num=y-1900+35; //参考干支纪年的计算,生肖对应地支 487 | return chinaZodiac[num%12]; 488 | } 489 | /** 490 | * 某年的第n个节气为几日 491 | * 地球公转时间:31556925974.7 毫秒 492 | * 由于农历24节气交节时刻采用近似算法,可能存在少量误差(30分钟内) 493 | * 1900年的正小寒点:01-06 02:03:57,1900年为基准点 494 | * 495 | * @param {Number} y 公历年 496 | * @param {Number} n 第几个节气,从0小寒起算 497 | * 498 | */ 499 | function getTerm(y,n) { 500 | var offDate = new Date((31556925974.7*(y-1900)+termInfo[n]*60000)+Date.UTC(1900,0,6,2,3,57)); 501 | return(offDate.getUTCDate()); 502 | } 503 | /** 504 | * 获取公历年一年的二十四节气 505 | * 返回节气中文名 506 | */ 507 | function getYearTerm(y,m,d){ 508 | var res=null; 509 | var month=0; 510 | for(var i=0;i<24;i++){ 511 | var day=getTerm(y,i); 512 | if(i%2==0) month++ 513 | if(month==m&&day==d){ 514 | res=solarTerm[i]; 515 | } 516 | } 517 | return res; 518 | } 519 | return res; 520 | } 521 | 522 | /** 523 | * 524 | * 根据日期获取某天的国际节日 525 | * 526 | * @param {Number} y 年 527 | * @param {Number} m 月 528 | * @param {Number} d 日 529 | */ 530 | function getInterFestival(y,m,d){ 531 | m=m<10?'0'+m:m; 532 | d=d<10?'0'+d:d; 533 | 534 | var fes=interFestival['i'+m+d]; 535 | if(fes){ 536 | if(fes.split(',').length>1){ 537 | var by=fes.split(',')[1]; 538 | return y>=by?fes.split(',')[0]:null; 539 | }else{ 540 | return fes; 541 | } 542 | }else{ 543 | return null; 544 | } 545 | 546 | } 547 | /** 548 | * 549 | * 根据日期获取某天的国内节日 550 | * 551 | * @param {Number} y 年 552 | * @param {Number} m 月 553 | * @param {Number} d 日 554 | */ 555 | function getDomesticFestival(y,m,d){ 556 | m=m<10?'0'+m:m; 557 | d=d<10?'0'+d:d; 558 | return domesticFestival['d'+m+d]?domesticFestival['d'+m+d]:null; 559 | } 560 | /** 561 | * 562 | * 根据日期获取某天的放假安排 563 | * 564 | * @param {Number} y 年 565 | * @param {Number} m 月 566 | * @param {Number} d 日 567 | */ 568 | function getLegalHoliday(y,m,d){ 569 | m=m<10?'0'+m:m; 570 | d=d<10?'0'+d:d; 571 | 572 | var Calendar=window.Calendar; 573 | if(Calendar.Holiday&&Calendar.Holiday['y'+y]){ //该年已有黄历数据 574 | return Calendar.Holiday['y'+y]['d'+m+d]?Calendar.Holiday['y'+y]['d'+m+d]:null; 575 | } 576 | 577 | } 578 | /** 579 | * 580 | * 根据日期获取某天的黄历信息 581 | * 582 | * @param {Number} y 年 583 | * @param {Number} m 月 584 | * @param {Number} d 日 585 | */ 586 | function getAlmanac(y,m,d){ 587 | m=m<10?'0'+m:m; 588 | d=d<10?'0'+d:d; 589 | 590 | var Calendar=window.Calendar; 591 | if(Calendar.HuangLi&&Calendar.HuangLi['y'+y]){ //该年已有黄历数据 592 | return Calendar.HuangLi['y'+y]['d'+m+d]?Calendar.HuangLi['y'+y]['d'+m+d]:null; 593 | } 594 | } 595 | /** 596 | * 获取某月的天数 597 | * @param {Number} y 年 598 | * @param {Number} m 月 599 | */ 600 | function getMonthDays(y,m){ 601 | var monthDays=[31,isLeap(y)?29:28,31,30,31,30,31,31,30,31,30,31]; 602 | return monthDays[m-1]; 603 | }; 604 | /** 605 | * 根据日期获取某天的星期数 606 | * 607 | * eg: var w=getWeek(2016,4,7); // w=1; 返回值范围 1-7 608 | * 609 | * @param {Number} y 年 610 | * @param {Number} m 月 611 | * @param {Number} d 日 612 | */ 613 | function getWeek(y,m,d){ 614 | return new Date(y,m-1,d).getDay()==0?7:new Date(y,m-1,d).getDay();// 注意:JavaScript月份范围是0-11 615 | } 616 | /** 617 | * 判断一个年份是闰年还是平年 618 | * 619 | * eg: var r=isLeapYear(2016); // r=true; 620 | * 621 | * @param {Number} y 年 622 | */ 623 | function isLeap(y){ 624 | return ((y%4==0&&y%100 !=0)||(y%400==0)); 625 | } 626 | /** 627 | * 用于测试和调试使用,打印日历 628 | * @param {Number} y 629 | * @param {Number} m 630 | */ 631 | function debugCalendar(y,m){ 632 | 633 | var view=getCalendar(y,m); 634 | var i=0; 635 | console.log('\t%c公历 ','color:red'); 636 | console.log('\t%s\t%s\t%s\t%s\t%s\t%s\t%s','星期一','星期二','星期三','星期四','星期五','星期六','星期日'); 637 | while(i]+)%>/g; 64 | var regVar=/<%=([^%>]+)%>/g; 65 | 66 | var res=null; 67 | if(!/\W/.test(html)){ 68 | res=cache[html]||compile(document.getElementById(html).innerHTML,options); 69 | }else{ 70 | var tmpl = 'var p=[];' + 71 | 'with(obj||{}){p.push(\'' + 72 | html.replace(/\\/g, '\\\\') 73 | .replace(/'/g, "\\'") 74 | .replace(regVar, function(match, code) { 75 | return "'," + code.replace(/\\'/g, "'") + ",'"; 76 | }) 77 | .replace(regExp || null, function(match, code) { 78 | return "');" + code.replace(/\\'/g, "'").replace(/[\r\n\t]/g, ' ') + "p.push('"; 79 | }) 80 | .replace(/\r/g, '\\r') 81 | .replace(/\n/g, '\\n') 82 | .replace(/\t/g, '\\t') 83 | + "');}return p.join('');"; 84 | 85 | res=new Function('obj',tmpl)(options); 86 | } 87 | return res; 88 | } 89 | return compile(html,options); 90 | } 91 | /** 92 | * 93 | * 拓展元素选择器 94 | * @param {String} sel 选择字符串 95 | * @param {String} context 上线文环境 96 | */ 97 | function selector(sel,context){ 98 | 99 | context=context||document; 100 | 101 | var dom=[]; 102 | 103 | if(!(typeof sel == 'string')){ 104 | dom.push(sel); 105 | return dom; 106 | } 107 | var doms=context.querySelectorAll(sel); 108 | for (var i=0;i6){ 132 | html=$.template(html,{tableSix:'op-calendar-new-table-six'}); 133 | }else{ 134 | html=$.template(html,{tableSix:''}); 135 | } 136 | $('.op-calendar-new-table-box').html(html); 137 | } 138 | /** 139 | * 当天详细情况 140 | * 141 | * @param {Number} y 年 142 | * @param {Number} m 月 143 | * @param {Number} d 日 144 | */ 145 | function detailHTML(y,m,d){ 146 | 147 | var month=Calendar.getCalendar(y,m); 148 | 149 | var dtmpl=''; 150 | dtmpl+='

    <%=today%> <%=week%>

    '; 151 | dtmpl+='

    <%=dayTime%>

    '; 152 | dtmpl+='

    '; 153 | dtmpl+='<%=lunarMonth%><%=lunarDay%><%=eraYear%>年 【<%=zodiac%>】<%=eraMonth%>月 <%=eraDay%>日

    '; 154 | dtmpl+='
    '; 155 | dtmpl+='

    '; 156 | dtmpl+='<%=yDay%>'; 157 | dtmpl+='<%=jDay%>

    '; 158 | dtmpl+='
    '; 159 | 160 | 161 | for(var i in month){ 162 | var dateDay=month[i].solarCalendar.year+'-'+month[i].solarCalendar.month+'-'+month[i].solarCalendar.day; 163 | if(dateDay===y+'-'+m+'-'+d){ 164 | break; 165 | } 166 | } 167 | var selectedDay=month[i]; 168 | 169 | m=m<10?'0'+m:m; 170 | d=d<10?'0'+d:d; 171 | 172 | var yDay=selectedDay.almanac?selectedDay.almanac.y.split('.').slice(0,6).join('
    '):'无'; 173 | var jDay=selectedDay.almanac?selectedDay.almanac.j.split('.').slice(0,6).join('
    '):'无'; 174 | var day={ 175 | today:y+'-'+m+'-'+d, 176 | dayTime:d, 177 | week:selectedDay.solarCalendar.week, 178 | lunarMonth:selectedDay.lunarCalendar.month, 179 | lunarDay:selectedDay.lunarCalendar.day, 180 | eraYear:selectedDay.chinaEra.year, 181 | eraMonth:selectedDay.chinaEra.month, 182 | eraDay:selectedDay.chinaEra.day, 183 | zodiac:selectedDay.chinaEra.zodiac, 184 | yDay:yDay, 185 | jDay:jDay 186 | } 187 | dtmpl=$.template(dtmpl,day); 188 | $('.op-calendar-new-right').html(dtmpl); 189 | 190 | } 191 | 192 | /** 193 | * 初始化年月,节日选择控件 194 | * @param {Number} y 195 | * @param {Number} m 196 | */ 197 | function dropDownHTML(y,m,d){ 198 | 199 | /** 200 | * 万年历支持查询的年份范围 201 | */ 202 | var minYear = 1899;//最小年限 203 | var maxYear = 2100;//最大年限 204 | 205 | // 国内传统节日 206 | var festival={ 207 | 'default':'假期安排', 208 | 'i0101':'元旦 ', 209 | 'd0101':'春节 ', 210 | 'd0115':'元宵节', 211 | 'd0202':'龙头节', 212 | 'd0505':'端午节', 213 | 'd0707':'七夕节', 214 | 'd0715':'中元节', 215 | 'd0815':'中秋节', 216 | 'd0909':'重阳节', 217 | 'd1001':'寒衣节', 218 | 'd1015':'下元节', 219 | 'd1208':'腊八节', 220 | 'd1223':'小年' 221 | }; 222 | var html=''; 223 | for(var i=minYear+1;i'+i+'年'; 225 | } 226 | // 输入框中的年 227 | $('.op-calendar-new-year-box .c-dropdown2-btn').html(y+'年') 228 | $('.op-calendar-new-year-box .c-dropdown2-btn').attr('data-value',y); 229 | $('.op-calendar-new-year-box .c-dropdown2-menubox').html(html) 230 | 231 | var html=''; 232 | for(var i=1;i<=12;i++){ 233 | html+='
  • '+i+'月
  • '; 234 | } 235 | // 输入框中的月 236 | $('.op-calendar-new-month-box .c-dropdown2-btn').html(m+'月'); 237 | $('.op-calendar-new-month-box .c-dropdown2-btn').attr('data-value',m); 238 | $('.op-calendar-new-month-box .c-dropdown2-menubox').html(html); 239 | 240 | var html=''; 241 | for(var i in festival){ 242 | html+='
  • '+festival[i]+'
  • '; 243 | } 244 | // 输入框中的节日 245 | $('.op-calendar-new-holiday-box .c-dropdown2-btn').html('假期安排'); 246 | $('.op-calendar-new-holiday-box .c-dropdown2-btn').attr('data-value','default'); 247 | $('.op-calendar-new-holiday-box .c-dropdown2-menubox').html(html); 248 | 249 | // 设置当前选中的日期 250 | $('.op-calendar-new-table-box').attr('date-selected',y+'-'+m+'-'+d); 251 | } 252 | /** 253 | * 更新输入框年月和当前选中的日期 254 | * @param {Number} y 255 | * @param {Number} m 256 | * @param {Number} d 257 | */ 258 | function setDropDown(y,m,d){ 259 | // 更新输入框的日期 260 | $('.op-calendar-new-year-box .c-dropdown2-btn').attr('data-value',y); 261 | $('.op-calendar-new-year-box .c-dropdown2-btn').html(y+'年'); 262 | $('.op-calendar-new-month-box .c-dropdown2-btn').attr('data-value',m); 263 | $('.op-calendar-new-month-box .c-dropdown2-btn').html(m+'月'); 264 | if(d){ 265 | $('.op-calendar-new-table-box').attr('date-selected',y+'-'+m+'-'+d); 266 | } 267 | } 268 | function getDropDown(){ 269 | // 输入框中的年 270 | var year=$('.op-calendar-new-year-box .c-dropdown2-btn').attr('data-value'); 271 | // 输入框中的月 272 | var month=$('.op-calendar-new-month-box .c-dropdown2-btn').attr('data-value'); 273 | // 输入框中的节日 274 | var festival=getFestival().date; 275 | // 当前选中的日期 276 | var selected=$('.op-calendar-new-table-box').attr('date-selected'); 277 | selected=(selected&&selected.length>0)?selected.split('-')[2]:0; 278 | 279 | var res={ 280 | year:parseInt(year,10), 281 | month:parseInt(month,10), 282 | festival:festival, 283 | selected:parseInt(selected,10) 284 | } 285 | return res; 286 | } 287 | function setFestival(festival){ 288 | // 输入框中的节日 289 | $('.op-calendar-new-holiday-box .c-dropdown2-btn').attr('data-value',festival.date); 290 | $('.op-calendar-new-holiday-box .c-dropdown2-btn').html(festival.name); 291 | } 292 | function getFestival(){ 293 | // 输入框中的节日 294 | var date=$('.op-calendar-new-holiday-box .c-dropdown2-btn').attr('data-value'); 295 | var name=$('.op-calendar-new-holiday-box .c-dropdown2-btn').html(); 296 | var res={ 297 | date:date, 298 | name:name 299 | }; 300 | return res; 301 | } 302 | // 向Calendar命名空间中添加UI属性 303 | Calendar.UI={ 304 | dropDownHTML:dropDownHTML, 305 | getDropDown:getDropDown, 306 | setDropDown:setDropDown, 307 | setFestival:setFestival, 308 | getFestival:getFestival, 309 | detailHTML:function(y,m,d){ 310 | // 加载对应的库,然后初始化日历 311 | Calendar.loadCalendarLib(y,function(){ 312 | detailHTML(y,m,d); 313 | }); 314 | }, 315 | calendarHTML:function(y,m){ 316 | // 加载对应的库,然后初始化日历 317 | Calendar.loadCalendarLib(y,function(){ 318 | calendarHTML(y,m); 319 | }); 320 | } 321 | } 322 | 323 | // 日历初始化入口函数 324 | Calendar.init=function(today){ 325 | // 获取当前日期 326 | var y=today.getFullYear(); 327 | var m=today.getMonth()+1; 328 | var d=today.getDate(); 329 | 330 | // 生成日历下拉框 331 | Calendar.UI.dropDownHTML(y,m,d); 332 | 333 | // 初始化日历 334 | Calendar.UI.calendarHTML(y,m); 335 | Calendar.UI.detailHTML(y,m,d); 336 | } 337 | 338 | }(Calendar,DOM); 339 | -------------------------------------------------------------------------------- /js/event.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 说明: 该模块主要用于生成日历的HTML结构 3 | * 4 | * 该算法主要实现了一下功能: 5 | * 6 | * 1、依赖calendar.js产生日历数据,通过模仿AngluarJS实现数据到页面最终的展示的映射 7 | * 8 | * 作者: 魏国兴 9 | * 日期: 20160407 10 | */ 11 | +function(cal,$){ 12 | 13 | // 日历对象 14 | var Calendar=cal||window.Calendar; 15 | 16 | // 下拉组件初始化 17 | $('.c-dropdown2').on('click',function(event){ 18 | // 阻止冒泡 19 | stopProp(event); 20 | 21 | // 事件源 22 | var target=event.currentTarget; 23 | // 隐藏所有的菜单 24 | $('.c-dropdown2-menu').hide(); 25 | // toggle当前菜单 26 | $('.c-dropdown2-menu',target).toggle(); 27 | 28 | // 鼠标移动到下拉菜单上 29 | $('.c-dropdown2-option',target).on('mouseover',function(){ 30 | // 移除其他元素的选中状态 31 | $('.c-dropdown2-menubox li',target).removeClass('c-dropdown2-selected'); 32 | // 给当前元素添加选中状态 33 | $(this).addClass('c-dropdown2-selected'); 34 | }); 35 | 36 | // 点击下拉菜单 37 | $('.c-dropdown2-option',target).on('click',function(event){ 38 | // 阻止冒泡 39 | stopProp(event); 40 | // 填充选中的菜单 41 | $('.c-dropdown2-btn',target).html(DOM(this).html()); 42 | // 设置数值 43 | $('.c-dropdown2-btn',target).attr('data-value',DOM(this).attr('data-value')); 44 | // 隐藏菜单 45 | $('.c-dropdown2-menu',target).hide(); 46 | 47 | // 触发查询 48 | search($(this).attr('data-role')==='f'?true:false); 49 | }); 50 | 51 | // 点击其他地方的时候,隐藏菜单按钮 52 | $('body').on('click',function(){ 53 | $('.c-dropdown2-menu').hide(); 54 | }); 55 | 56 | // 阻止冒泡 57 | function stopProp(event){ 58 | var event=event?event:window.event; 59 | if (event.stopPropagation){ 60 | event.stopPropagation(); 61 | } else { 62 | event.cancelBubble = true; 63 | } 64 | } 65 | 66 | }); 67 | 68 | // 点击日历中的某一天 69 | $('.op-calendar-new-table-box').on('click',function(event){ 70 | 71 | // this值 72 | // var currentTarget=event.currentTarget; 73 | 74 | // 获取点击事件 75 | var event=event?event:window.event; 76 | // 事件源 77 | var target=event.target||event.srcElement; 78 | 79 | // 点击时间 80 | var date=target.getAttribute('date')||target.parentNode.getAttribute('date'); 81 | 82 | if(date){ 83 | var year=date.split('-')[0]; 84 | var month=date.split('-')[1]; 85 | var day=date.split('-')[2]; 86 | 87 | var node=target.getAttribute('date')?target:target.parentNode; 88 | 89 | $('.op-calendar-new-table-box a').removeClass('op-calendar-new-table-selected'); 90 | $(node).addClass('op-calendar-new-table-selected'); 91 | 92 | var othermonth=$(node).attr('data-othermonth'); 93 | $('.op-calendar-new-table-box').attr('date-selected',date); 94 | if(othermonth==false){ 95 | Calendar.UI.detailHTML(year,month,day); 96 | }else{ 97 | // 设置下拉框日期 98 | Calendar.UI.setDropDown(year,month); 99 | // 触发查询 100 | search(); 101 | } 102 | } 103 | }); 104 | 105 | // 选择月 106 | $('.op-calendar-new-month-box').on('click',function(event){ 107 | 108 | // 事件源 109 | var target=event.target||event.srcElement; 110 | 111 | var res=Calendar.UI.getDropDown(); 112 | var year=res.year; 113 | var month=res.month; 114 | 115 | if($(target).hasClass('op-calendar-new-prev-month')){ 116 | year=month>1?year:year-1; 117 | month=month>1?month-1:12; 118 | } 119 | if($(target).hasClass('op-calendar-new-next-month')){ 120 | year=month<12?year:year+1; 121 | month=month<12?month+1:1; 122 | } 123 | // 设置下拉框日期 124 | Calendar.UI.setDropDown(year,month); 125 | 126 | // 触发查询 127 | search(); 128 | }); 129 | 130 | // 回到今天 131 | $('.op-calendar-new-backtoday').on('click',function(event){ 132 | // 重新初始化日历 133 | Calendar.init(new Date()); 134 | }); 135 | 136 | 137 | 138 | function search(qfestival){ 139 | // 获取下拉框的年月和节日 140 | var res=Calendar.UI.getDropDown(); 141 | // 输入框中的年 142 | var year=res.year; 143 | // 输入框中的月 144 | var month=res.month; 145 | // 当前日期 146 | var day=(new Date()).getDate(); 147 | // 输入框中的节日 148 | var festival=res.festival; 149 | // 当前选中的日期 150 | var selected=res.selected; 151 | 152 | if(festival!='default'&&qfestival){ 153 | 154 | var fm=parseInt(festival.substring(1,3),10); 155 | var fd=parseInt(festival.substring(3,5),10); 156 | 157 | // 国内传统节日 农历转公历 158 | if(!festival.startsWith('i')){ 159 | var fdays=Calendar.getSolarCalendar(year,fm,fd); 160 | year=fdays[0].year; 161 | month=fdays[0].month; 162 | day=fdays[0].day; 163 | 164 | }else{ 165 | month=fm; 166 | day=fd; 167 | } 168 | 169 | // 更新输入框的日期 170 | Calendar.UI.setDropDown(year,month,day); 171 | 172 | Calendar.UI.calendarHTML(year,month); 173 | Calendar.UI.detailHTML(year,month,day); 174 | 175 | }else{ 176 | Calendar.UI.setFestival({date:'default',name:'假期安排'}); 177 | // 更新输入框的日期 178 | Calendar.UI.setDropDown(year,month,selected||day); 179 | 180 | Calendar.UI.calendarHTML(year,month); 181 | Calendar.UI.detailHTML(year,month,selected||day); 182 | 183 | } 184 | } 185 | }(Calendar,DOM); 186 | -------------------------------------------------------------------------------- /js/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 说明: 该模块主要用于组装 calendar.js dom.js event.js 生成日历 3 | * 4 | * 作者: 魏国兴 5 | * 日期: 20160407 6 | */ 7 | +function(cal){ 8 | 9 | // 日历对象 10 | var Calendar=cal||window.Calendar; 11 | // 初始化日历 12 | Calendar.init(new Date()); 13 | 14 | }(Calendar); -------------------------------------------------------------------------------- /lib/hl2008.js: -------------------------------------------------------------------------------- 1 | window.Calendar = window.Calendar||{}; 2 | window.Calendar.HuangLi = window.Calendar.HuangLi || {}; 3 | window.Calendar.HuangLi.y2008 = { 4 | "d0101": { 5 | "y": "教牛马.余事勿取xixi.", 6 | "j": "入宅.动土.破土.余事勿取." 7 | }, 8 | "d0102": { 9 | "y": "嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.", 10 | "j": "开市.安葬." 11 | }, 12 | "d0103": { 13 | "y": "开市.立券.开光.解除.安机械.上梁.启攒.安葬.", 14 | "j": "嫁娶.祈福." 15 | }, 16 | "d0104": { 17 | "y": "平治道涂.余事勿取.", 18 | "j": "诸事不宜." 19 | }, 20 | "d0105": { 21 | "y": "求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.", 22 | "j": "开市.嫁娶." 23 | }, 24 | "d0106": { 25 | "y": "嫁娶.订盟.纳采.会亲友.祭祀.安机械.移徙.入宅.造屋.安床.起基.定磉.安香.出火.挂匾.拆卸.置产.", 26 | "j": "开市.出行.安葬.行丧." 27 | }, 28 | "d0107": { 29 | "y": "沐浴.捕捉.畋猎.理发.整手足甲.入殓.除服.成服.破土.安葬.谢土.立碑.修坟.启攒.", 30 | "j": "纳采.订盟.嫁娶.上梁.开市.斋醮.造屋.安门." 31 | }, 32 | "d0108": { 33 | "y": "祭祀.破屋.坏垣.余事勿取.", 34 | "j": "斋醮.嫁娶.开市." 35 | }, 36 | "d0109": { 37 | "y": "沐浴.开仓.出货财.开市.交易.立券.纳财.栽种.纳畜.牧养.畋猎.入殓.破土.安葬.", 38 | "j": "祈福.嫁娶.安床.入宅.造船." 39 | }, 40 | "d0110": { 41 | "y": "祭祀.沐浴.补垣.塞穴.断蚁.解除.余事勿取.", 42 | "j": "造庙.入宅.修造.安葬.行丧.嫁娶." 43 | }, 44 | "d0111": { 45 | "y": "嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.", 46 | "j": "开市.安床.安葬.修坟." 47 | }, 48 | "d0112": { 49 | "y": "订盟.纳采.会亲友.祭祀.斋醮.沐浴.塑绘.出火.开光.竖柱.上梁.开市.交易.立券.作梁.开柱眼.伐木.架马.安门.安床.拆卸.牧养.造畜椆栖.掘井.", 50 | "j": "造庙.嫁娶.出行.动土.安葬.行丧." 51 | }, 52 | "d0113": { 53 | "y": "交易.立券.纳财.安床.裁衣.造畜椆栖.安葬.谢土.启攒.除服.成服.修坟.立碑.移柩.入殓.", 54 | "j": "开光.嫁娶.开市.动土.破土." 55 | }, 56 | "d0114": { 57 | "y": "祭祀.解除.教牛马.会亲友.余事勿取.", 58 | "j": "破土.动土.安葬." 59 | }, 60 | "d0115": { 61 | "y": "纳采.订盟.移徙.纳财.开市.交易.立券.入宅.会亲友.解除.求医.治病.入学.安床.安门.安香.出火.拆卸.扫舍.入宅.挂匾.开生坟.合寿木.破土.修坟.启攒.入殓.", 62 | "j": "探病.祭祀.出行.上梁.造屋.谢土.安葬." 63 | }, 64 | "d0116": { 65 | "y": "嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓.", 66 | "j": "入宅.开光.开市.动土." 67 | }, 68 | "d0117": { 69 | "y": "祭祀.冠笄.嫁娶.会亲友.进人口.裁衣.结网.平治道涂.", 70 | "j": "移徙.入宅.造庙.作灶.治病.安葬." 71 | }, 72 | "d0118": { 73 | "y": "祭祀.安碓硙.结网.余事勿取.", 74 | "j": "嫁娶.安葬." 75 | }, 76 | "d0119": { 77 | "y": "嫁娶.祭祀.沐浴.裁衣.出行.理发.移徙.捕捉.畋猎.放水.入宅.除服.成服.启攒.安葬.移柩.入殓.", 78 | "j": "造屋.开市.动土.破土." 79 | }, 80 | "d0120": { 81 | "y": "破屋.坏垣.余事勿取.", 82 | "j": "嫁娶.开市.安葬." 83 | }, 84 | "d0121": { 85 | "y": "纳采.订盟.祭祀.求嗣.出火.塑绘.裁衣.会亲友.入学.拆卸.扫舍.造仓.挂匾.掘井.开池.结网.栽种.纳畜.破土.修坟.立碑.安葬.入殓.", 86 | "j": "祈福.嫁娶.造庙.安床.谢土." 87 | }, 88 | "d0122": { 89 | "y": "入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.", 90 | "j": "开市.伐木.嫁娶.作梁." 91 | }, 92 | "d0123": { 93 | "y": "祭祀.作灶.入殓.除服.余事勿取.", 94 | "j": "开市.安床." 95 | }, 96 | "d0124": { 97 | "y": "塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.", 98 | "j": "嫁娶.入殓.安葬.出行." 99 | }, 100 | "d0125": { 101 | "y": "祭祀.沐浴.祈福.斋醮.订盟.纳采.裁衣.拆卸.起基.竖柱.上梁.安床.入殓.除服.成服.移柩.启攒.挂匾.求嗣.出行.合帐.造畜椆栖.", 102 | "j": "开仓.嫁娶.移徙.入宅." 103 | }, 104 | "d0126": { 105 | "y": "祭祀.解除.余事勿取.", 106 | "j": "诸事不宜." 107 | }, 108 | "d0127": { 109 | "y": "沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.", 110 | "j": "作灶.祭祀.上梁.出行." 111 | }, 112 | "d0128": { 113 | "y": "出行.嫁娶.订盟.纳采.入殓.安床.启攒.安葬.祭祀.裁衣.会亲友.进人口.", 114 | "j": "作灶.掘井.谢土.入宅." 115 | }, 116 | "d0129": { 117 | "y": "修饰垣墙.平治道涂.入殓.移柩.余事勿取.", 118 | "j": "嫁娶.移徙.入宅.开光." 119 | }, 120 | "d0130": { 121 | "y": "会亲友.纳采.进人口.修造.动土.竖柱.上梁.祭祀.开光.塑绘.祈福.斋醮.嫁娶.安床.移徙.入宅.安香.纳畜.", 122 | "j": "出行.治病.安葬.开市." 123 | }, 124 | "d0131": { 125 | "y": "祭祀.会亲友.出行.订盟.纳采.沐浴.修造.动土.祈福.斋醮.嫁娶.拆卸.安床.入殓.移柩.安葬.谢土.赴任.裁衣.竖柱.上梁.伐木.捕捉.栽种.破土.安门.", 126 | "j": "造屋.开市.作灶.入宅." 127 | }, 128 | "d0201": { 129 | "y": "解除.破屋.坏垣.余事勿取.", 130 | "j": "诸事不宜." 131 | }, 132 | "d0202": { 133 | "y": "塑绘.开光.出行.订盟.纳采.除服.成服.嫁娶.纳婿.入殓.移柩.启攒.安葬.立碑.", 134 | "j": "入宅.安床." 135 | }, 136 | "d0203": { 137 | "y": "入殓.除服.成服.移柩.启攒.安葬.立碑.余事勿取.", 138 | "j": "破土.伐木." 139 | }, 140 | "d0204": { 141 | "y": "塞穴.结网.取渔.畋猎.", 142 | "j": "嫁娶.安门.移徙.入宅.安葬." 143 | }, 144 | "d0205": { 145 | "y": "纳采.祭祀.祈福.出行.会亲友.修造.动土.移徙.入宅.", 146 | "j": "嫁娶.开市.安葬.破土." 147 | }, 148 | "d0206": { 149 | "y": "纳采.嫁娶.祭祀.祈福.出行.开市.会亲友.动土.破土.启攒.", 150 | "j": "移徙.入宅.出火.安门.安葬." 151 | }, 152 | "d0207": { 153 | "y": "祭祀.祈福.求嗣.斋醮.入殓.除服.成服.移柩.安葬.启攒.", 154 | "j": "嫁娶.动土.开光.造屋.破土." 155 | }, 156 | "d0208": { 157 | "y": "纳采.会亲友.竖柱.上梁.立券.入殓.移柩.安葬.启攒.", 158 | "j": "祭祀.移徙.入宅.动土.破土." 159 | }, 160 | "d0209": { 161 | "y": "祭祀.祈福.斋醮.出行.开市.立券.动土.移徙.入宅.破土.安葬.", 162 | "j": "开光.嫁娶.作灶.掘井.纳畜." 163 | }, 164 | "d0210": { 165 | "y": "会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.", 166 | "j": "开市.动土.安葬.破土." 167 | }, 168 | "d0211": { 169 | "y": "祭祀.平治道涂.余事勿取.", 170 | "j": "嫁娶.祈福.掘井.安葬." 171 | }, 172 | "d0212": { 173 | "y": "祈福.求嗣.斋醮.纳采.嫁娶.伐木.修造.动土.移徙.入宅.造庙.安机械.开市.入殓.除服.成服.移柩.安葬.破土.谢土.", 174 | "j": "置产.造屋.合脊.开光.探病.安门.作灶." 175 | }, 176 | "d0213": { 177 | "y": "入学.习艺.出行.纳采.订盟.嫁娶.会亲友.进人口.牧养.捕捉.入殓.移柩.安葬.启攒.", 178 | "j": "开光.开市.入宅.动土.造屋." 179 | }, 180 | "d0214": { 181 | "y": "祭祀.沐浴.求医.治病.扫舍.破屋.坏垣.解除.余事勿取.", 182 | "j": "入宅.开市.安葬." 183 | }, 184 | "d0215": { 185 | "y": "祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土.", 186 | "j": "安床.栽种.治病.作灶." 187 | }, 188 | "d0216": { 189 | "y": "", 190 | "j": "" 191 | }, 192 | "d0217": { 193 | "y": "塑绘.开光.祈福.求嗣.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.起基.安门.安床.移徙.造仓.结网.纳畜.", 194 | "j": "伐木.作灶.安葬.取渔.入宅." 195 | }, 196 | "d0218": { 197 | "y": "祭祀.沐浴.开光.塑绘.祈福.求嗣.订盟.纳采.冠笄.裁衣.嫁娶.动土.除服.成服.移柩.破土.启攒.出行.安碓硙.放水.开市.立券.交易.", 198 | "j": "安葬.上梁.入宅.作灶." 199 | }, 200 | "d0219": { 201 | "y": "祭祀.祈福.求嗣.酬神.裁衣.安床.立券.交易.入殓.除服.成服.移柩.谢土.启攒.", 202 | "j": "出行.嫁娶.入宅.动土." 203 | }, 204 | "d0220": { 205 | "y": "裁衣.合帐.入殓.除服.成服.会亲友.纳财.", 206 | "j": "祭祀.祈福.移徙.嫁娶.入宅." 207 | }, 208 | "d0221": { 209 | "y": "祭祀.斋醮.裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.入殓.移柩.破土.立碑.安香.会亲友.出行.祈福.求嗣.立碑.上梁.放水.", 210 | "j": "掘井." 211 | }, 212 | "d0222": { 213 | "y": "安床.合帐.入宅.问名.纳采.求嗣.祭祀.开仓.", 214 | "j": "斋醮.作灶.安床.安葬." 215 | }, 216 | "d0223": { 217 | "y": "", 218 | "j": "" 219 | }, 220 | "d0224": { 221 | "y": "塑绘.开光.酬神.斋醮.订盟.纳采.裁衣.合帐.拆卸.动土.上梁.安床.安香.造庙.挂匾.会亲友.进人口.出行.修造.纳财.伐木.放水.出火.纳畜.沐浴.安门.", 222 | "j": "造屋.栽种.安葬.作灶." 223 | }, 224 | "d0225": { 225 | "y": "祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.", 226 | "j": "栽种.动土.开市.作灶." 227 | }, 228 | "d0226": { 229 | "y": "求医.破屋.", 230 | "j": "诸事不宜." 231 | }, 232 | "d0227": { 233 | "y": "祈福.求嗣.斋醮.塑绘.开光.订盟.纳采.嫁娶.动土.入宅.安香.移柩.安葬.谢土.出行.沐浴.修造.竖柱.上梁.纳财.破土.解除.安门.放水.", 234 | "j": "作灶.安床." 235 | }, 236 | "d0228": { 237 | "y": "取渔.入殓.除服.成服.移柩.破土.安葬.立碑.", 238 | "j": "嫁娶.上梁.入宅.作灶." 239 | }, 240 | "d0229": { 241 | "y": "祭祀.求嗣.沐浴.酬神.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造仓.开池.经络.纳财.开市.立券.交易.结网.取渔.纳畜.捕捉.", 242 | "j": "安葬.作灶.伐木.作梁." 243 | }, 244 | "d0301": { 245 | "y": "祭祀.沐浴.祈福.求嗣.斋醮.订盟.纳采.裁衣.冠笄.开市.立券.交易.纳财.沐浴.除服.谢土.出行.移柩.", 246 | "j": "入殓.安葬.作灶.入宅." 247 | }, 248 | "d0302": { 249 | "y": "祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.", 250 | "j": "开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土." 251 | }, 252 | "d0303": { 253 | "y": "安床.解除.裁衣.竖柱.上梁.交易.立券.纳财.纳畜.牧养.入殓.移柩.安葬.启攒.", 254 | "j": "嫁娶.出行.动土.开渠.入宅.祭祀.掘井." 255 | }, 256 | "d0304": { 257 | "y": "嫁娶.安床.开光.出行.祭祀.动土.出火.解除.会亲友.开市.交易.立券.挂匾.入宅.移徙.拆卸.破土.启攒.安葬.", 258 | "j": "掘井.词讼." 259 | }, 260 | "d0305": { 261 | "y": "祭祀.沐浴.解除.扫舍.塞穴.牧养.", 262 | "j": "嫁娶.安葬.行丧.安门." 263 | }, 264 | "d0306": { 265 | "y": "", 266 | "j": "" 267 | }, 268 | "d0307": { 269 | "y": "嫁娶.冠笄.会亲友.安机械.纳财.交易.立券.置产.", 270 | "j": "开市.造屋.治病.作灶." 271 | }, 272 | "d0308": { 273 | "y": "嫁娶.造车器.纳采.订盟.祭祀.祈福.安机械.移徙.入宅.开市.立券.破土.安葬.", 274 | "j": "纳畜.理发.合寿木." 275 | }, 276 | "d0309": { 277 | "y": "祈福.斋醮.出行.移徙.入宅.修造.动土.破土.安葬.", 278 | "j": "纳采.开光.安床.嫁娶.开市." 279 | }, 280 | "d0310": { 281 | "y": "破屋.坏垣.余事勿取.", 282 | "j": "嫁娶.移徙.开市.入宅." 283 | }, 284 | "d0311": { 285 | "y": "嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.", 286 | "j": "塑绘.开光.造桥.除服.成服." 287 | }, 288 | "d0312": { 289 | "y": "开光.求嗣.出行.纳采.冠笄.出火.拆卸.起基.修造.动土.上梁.移徙.造船.开市.交易.立券.纳财.", 290 | "j": "祈福.嫁娶.安葬.破土." 291 | }, 292 | "d0313": { 293 | "y": "理发.冠笄.嫁娶.进人口.栽种.捕捉.针灸.", 294 | "j": "纳财.开市.安葬.破土." 295 | }, 296 | "d0314": { 297 | "y": "开光.祈福.求嗣.出行.解除.伐木.造屋.起基.修造.架马.安门.移徙.入宅.造庙.除服.成服.移柩.谢土.纳畜.牧养.", 298 | "j": "纳采.动土.开市.交易.安门." 299 | }, 300 | "d0315": { 301 | "y": "裁衣.经络.伐木.开柱眼.拆卸.修造.动土.上梁.合脊.合寿木.入殓.除服.成服.移柩.破土.安葬.启攒.修坟.立碑.", 302 | "j": "祭祀.嫁娶.出行.上梁.掘井." 303 | }, 304 | "d0316": { 305 | "y": "祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口.", 306 | "j": "栽种.动土.安葬.掘井.修坟.探病." 307 | }, 308 | "d0317": { 309 | "y": "扫舍.塞穴.余事勿取.", 310 | "j": "诸事不宜." 311 | }, 312 | "d0318": { 313 | "y": "塑绘.开光.订盟.纳采.裁衣.合帐.冠笄.安机械.会亲友.纳财.开市.立券.交易.安床.竖柱.上梁.结网.栽种.解除.经络.", 314 | "j": "作灶.出行.入宅.安葬." 315 | }, 316 | "d0319": { 317 | "y": "祭祀.嫁娶.纳婿.除服.成服.入殓.移柩.", 318 | "j": "动土.作灶.入宅.开光.安床." 319 | }, 320 | "d0320": { 321 | "y": "祈福.求嗣.开光.塑绘.斋醮.订盟.纳采.嫁娶.拆卸.安床.入宅.安香.移柩.修坟.安葬.谢土.栽种.解除.冠笄.裁衣.移徙.修造.动土.竖柱.放水.启攒.立碑.", 322 | "j": "赴任." 323 | }, 324 | "d0321": { 325 | "y": "祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.", 326 | "j": "安床.嫁娶.作灶.入宅." 327 | }, 328 | "d0322": { 329 | "y": "破屋.坏垣.", 330 | "j": "诸事不宜." 331 | }, 332 | "d0323": { 333 | "y": "祭祀.出行.订盟.纳采.裁衣.合帐.冠笄.进人口.动土.安床.作灶.入殓.移柩.安葬.破土.结网.取渔.畋猎.", 334 | "j": "作梁.造庙." 335 | }, 336 | "d0324": { 337 | "y": "祭祀.开光.塑绘.订盟.纳采.合帐.冠笄.拆卸.动土.起基.上梁.入宅.安香.开市.立券.纳财.沐浴.求嗣.出火.竖柱.安门.", 338 | "j": "造庙.嫁娶.伐木.安葬." 339 | }, 340 | "d0325": { 341 | "y": "祭祀.沐浴.捕捉.栽种.", 342 | "j": "嫁娶.入宅.移徙.作灶.安葬." 343 | }, 344 | "d0326": { 345 | "y": "祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.", 346 | "j": "栽种.安葬." 347 | }, 348 | "d0327": { 349 | "y": "订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.", 350 | "j": "作灶.开光.嫁娶.开市.入宅." 351 | }, 352 | "d0328": { 353 | "y": "祈福.开光.塑绘.酬神.订盟.纳采.裁衣.安床.开市.立券.入殓.除服.成服.移柩.启攒.安葬.立碑.赴任.会亲友.出行.交易.竖柱.", 354 | "j": "作灶.掘井.动土.栽种." 355 | }, 356 | "d0329": { 357 | "y": "祭祀.扫舍.塞穴.", 358 | "j": "栽种.作灶.安葬.嫁娶." 359 | }, 360 | "d0330": { 361 | "y": "开光.塑绘.裁衣.冠笄.伐木.拆卸.竖柱.上梁.开仓.会亲友.安机械.造仓.造屋.交易.解除.开市.立券.纳财.", 362 | "j": "出行.嫁娶.入宅.安葬." 363 | }, 364 | "d0331": { 365 | "y": "冠笄.入殓.除服.成服.移柩.平治道涂.修饰垣墙.", 366 | "j": "造屋.作灶.治病.探病." 367 | }, 368 | "d0401": { 369 | "y": "祭祀.嫁娶.祈福.纳采.裁衣.合帐.安床.入宅.安香.入殓.移柩.安葬.谢土.修造.安碓硙.求嗣.会亲友.挂匾.交易.立券.纳财.造仓.放水.", 370 | "j": "栽种.伐木." 371 | }, 372 | "d0402": { 373 | "y": "祭祀.祈福.斋醮.订盟.纳采.裁衣.合帐.拆卸.修造.动土.上梁.起基.移柩.安葬.谢土.沐浴.扫舍.开柱眼.伐木.出火.", 374 | "j": "安床.开市.立券.作灶." 375 | }, 376 | "d0403": { 377 | "y": "", 378 | "j": "" 379 | }, 380 | "d0404": { 381 | "y": "祭祀.沐浴.解除.求医.治病.破屋.坏垣.余事勿取.", 382 | "j": "祈福.斋醮.开市.安葬." 383 | }, 384 | "d0405": { 385 | "y": "沐浴.捕捉.畋猎.结网.取渔.", 386 | "j": "祭祀.嫁娶.入宅.作灶.安葬." 387 | }, 388 | "d0406": { 389 | "y": "祭祀.祈福.求嗣.斋醮.纳采.订盟.开光.竖柱.上梁.开仓.出货财.造屋.起基.定磉.安门.诸事不宜.破土.入殓.启攒.谢土.", 390 | "j": "出火.嫁娶.开市." 391 | }, 392 | "d0407": { 393 | "y": "祭祀.捕捉.解除.余事勿取.", 394 | "j": "嫁娶.安葬." 395 | }, 396 | "d0408": { 397 | "y": "纳采.嫁娶.出行.开市.立券.纳畜.牧养.出火.移徙.入宅.", 398 | "j": "祈福.动土.破土.安葬.入殓." 399 | }, 400 | "d0409": { 401 | "y": "祭祀.祈福.求嗣.斋醮.冠笄.作灶.纳财.交易.", 402 | "j": "开光.嫁娶.掘井.安葬.安门.探病." 403 | }, 404 | "d0410": { 405 | "y": "祭祀.解除.教牛马.出行.余事勿取.", 406 | "j": "动土.破土.行丧.开光.作梁.安葬.探病." 407 | }, 408 | "d0411": { 409 | "y": "沐浴.斋醮.解除.求医.治病.会亲友.造畜椆栖.栽种.理发.扫舍.", 410 | "j": "开市.嫁娶.移徙.入宅.掘井.安葬." 411 | }, 412 | "d0412": { 413 | "y": "求嗣.出行.解除.订盟.纳采.嫁娶.会亲友.进人口.安床.开市.交易.纳畜.牧养.入殓.除服.成服.移柩.安葬.启攒.", 414 | "j": "祈福.开市.修造.动土.破土.谢土." 415 | }, 416 | "d0413": { 417 | "y": "祭祀.作灶.平治道涂.余事勿取.", 418 | "j": "嫁娶.安葬.动土.安床.治病." 419 | }, 420 | "d0414": { 421 | "y": "造车器.祭祀.祈福.求嗣.斋醮.开市.交易.安机械.雕刻.开光.造屋.合脊.起基.定磉.安门.纳畜.安葬.开生坟.立碑.谢土.斋醮.", 422 | "j": "入宅.动土.开仓.出货财." 423 | }, 424 | "d0415": { 425 | "y": "祭祀.祈福.开光.求嗣.斋醮.纳采.订盟.求医.治病.起基.定磉.造船.取渔.解除.安葬.启攒.谢土.入殓.", 426 | "j": "开市.动土.掘井.开池." 427 | }, 428 | "d0416": { 429 | "y": "祭祀.沐浴.破屋.坏垣.求医.治病.解除.余事勿取.", 430 | "j": "嫁娶.开市.交易.入宅.安葬." 431 | }, 432 | "d0417": { 433 | "y": "诸事不宜.", 434 | "j": "诸事不宜." 435 | }, 436 | "d0418": { 437 | "y": "祭祀.塑绘.开光.订盟.纳采.冠笄.裁衣.安机械.拆卸.修造.动土.安床.经络.开市.", 438 | "j": "出火.入宅.安葬.伐木." 439 | }, 440 | "d0419": { 441 | "y": "祭祀.余事勿取.", 442 | "j": "造庙.嫁娶.安床.余事勿取." 443 | }, 444 | "d0420": { 445 | "y": "订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.", 446 | "j": "入殓.安葬.入宅.安床." 447 | }, 448 | "d0421": { 449 | "y": "祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.", 450 | "j": "掘井.安门.嫁娶.纳采." 451 | }, 452 | "d0422": { 453 | "y": "祭祀.进人口.嫁娶.安床.解除.冠笄.出行.裁衣.扫舍.", 454 | "j": "掘井.动土.破土.安葬.开光." 455 | }, 456 | "d0423": { 457 | "y": "纳采.开光.求医.治病.动土.上梁.移徙.入宅.", 458 | "j": "嫁娶.开市.安葬." 459 | }, 460 | "d0424": { 461 | "y": "祭祀.会亲友.开市.安床.启攒.安葬.", 462 | "j": "嫁娶.动土.破土." 463 | }, 464 | "d0425": { 465 | "y": "祭祀.作灶.掘井.平治道涂.", 466 | "j": "嫁娶.安葬." 467 | }, 468 | "d0426": { 469 | "y": "祭祀.斋醮.开市.动土.入殓.破土.安葬.", 470 | "j": "嫁娶.移徙.入宅." 471 | }, 472 | "d0427": { 473 | "y": "嫁娶.纳采.祭祀.祈福.出行.移徙.求医.", 474 | "j": "开市.动土.破土." 475 | }, 476 | "d0428": { 477 | "y": "祭祀.求医.治病.解除.余事勿取.", 478 | "j": "诸事不宜." 479 | }, 480 | "d0429": { 481 | "y": "沐浴.结网.取渔.", 482 | "j": "嫁娶.入宅.安葬." 483 | }, 484 | "d0430": { 485 | "y": "", 486 | "j": "诸事不宜." 487 | }, 488 | "d0501": { 489 | "y": "解除.坏垣.余事勿取.", 490 | "j": "诸事不宜." 491 | }, 492 | "d0502": { 493 | "y": "嫁娶.开光.出行.出火.拆卸.进人口.开市.立券.交易.挂匾.入宅.移徙.安床.栽种.", 494 | "j": "祈福.入殓.祭祀.作灶.安葬.探病." 495 | }, 496 | "d0503": { 497 | "y": "嫁娶.出行.合帐.冠笄.安床.除服.成服.作灶.交易.立券.入殓.移柩.破土.安葬.", 498 | "j": "词讼.开光.开市." 499 | }, 500 | "d0504": { 501 | "y": "出行.修饰垣墙.造畜椆栖.教牛马.余事勿取.", 502 | "j": "诸事不宜." 503 | }, 504 | "d0505": { 505 | "y": "祭祀.解除.断蚁.会亲友.余事勿取.", 506 | "j": "嫁娶.安葬." 507 | }, 508 | "d0506": { 509 | "y": "嫁娶.纳采.订盟.祭祀.祈福.治病.造车器.修造.动土.移徙.入宅.", 510 | "j": "开市.出行.安床.作灶.安葬." 511 | }, 512 | "d0507": { 513 | "y": "嫁娶.纳采.订盟.会亲友.安机械.结网.冠笄.祭祀.求嗣.进人口.经络.", 514 | "j": "开市.作灶.动土.行丧.安葬." 515 | }, 516 | "d0508": { 517 | "y": "祭祀.沐浴.移徙.破土.安葬.扫舍.平治道涂.", 518 | "j": "祈福.嫁娶.入宅.安床.作灶." 519 | }, 520 | "d0509": { 521 | "y": "祭祀.祈福.斋醮.求嗣.安机械.纳畜.移徙.入宅.安机械.塑绘.开光.起基.竖柱.上梁.作灶.安门.安香.出火.造屋.启攒.安葬.", 522 | "j": "动土.破土.嫁娶.嫁娶." 523 | }, 524 | "d0510": { 525 | "y": "嫁娶.纳采.订盟.斋醮.开光.祭祀.祈福.求医.治病.会亲友.动土.解除.捕捉.纳畜.牧养.入殓.破土.安葬.", 526 | "j": "移徙.入宅.造屋.架马." 527 | }, 528 | "d0511": { 529 | "y": "祭祀.沐浴.解除.破屋.坏垣.余事勿取.", 530 | "j": "行丧.安葬." 531 | }, 532 | "d0512": { 533 | "y": "沐浴.扫舍.余事勿取.", 534 | "j": "斋醮.开市.嫁娶.作灶." 535 | }, 536 | "d0513": { 537 | "y": "开市.交易.立券.安机械.会亲友.开光.求医.治病.造屋.起基.修造.动土.定磉.竖柱.上梁.安门.作灶.放水.作厕.开池.栽种.牧养.造畜椆栖.破土.安葬.立碑.", 538 | "j": "嫁娶.出火.移徙.入宅." 539 | }, 540 | "d0514": { 541 | "y": "栽种.捕捉.畋猎.余事勿取.", 542 | "j": "开市.动土.祭祀.斋醮.安葬.探病." 543 | }, 544 | "d0515": { 545 | "y": "嫁娶.祭祀.祈福.求嗣.斋醮.订盟.纳采.解除.出行.动土.破土.习艺.针灸.理发.会亲友.起基.修造.动土.竖柱.定磉.安床.拆卸.纳畜.牧养.放水.破土.除服.成服.修坟.立碑.", 546 | "j": "开市.入宅.探病.出火.造屋." 547 | }, 548 | "d0516": { 549 | "y": "余事勿取.", 550 | "j": "余事勿取." 551 | }, 552 | "d0517": { 553 | "y": "塞穴.断蚁.结网.余事勿取.", 554 | "j": "破土.安葬." 555 | }, 556 | "d0518": { 557 | "y": "开光.出行.纳采.嫁娶.伐木.架马.出火.拆卸.移徙.入宅.造庙.造桥.造船.造畜椆栖.开市.入殓.除服.成服.移柩.安葬.", 558 | "j": "" 559 | }, 560 | "d0519": { 561 | "y": "进人口.牧养.置产.塞穴.结网.余事勿取.", 562 | "j": "诸事不宜." 563 | }, 564 | "d0520": { 565 | "y": "开光.出行.嫁娶.", 566 | "j": "会亲友.进人口.修造.动土.起基.移徙.开市.纳畜.入殓.除服.成服.移柩.破土.安葬.修坟.立碑.会亲友." 567 | }, 568 | "d0521": { 569 | "y": "嫁娶.纳采.出行.祭祀.祈福.开市.动土.移徙.入宅.破土.安葬.", 570 | "j": "安门." 571 | }, 572 | "d0522": { 573 | "y": "嫁娶.纳采.求医.治病.修造.动土.移徙.入宅.破土.安葬.", 574 | "j": "开市.开光." 575 | }, 576 | "d0523": { 577 | "y": "祭祀.破屋.坏垣.余事勿取.", 578 | "j": "诸事不宜." 579 | }, 580 | "d0524": { 581 | "y": "嫁娶.纳采.祭祀.祈福.出行.动土.上梁.移徙.入宅.破土.安葬.", 582 | "j": "祈福.斋醮." 583 | }, 584 | "d0525": { 585 | "y": "纳采.祭祀.祈福.开市.求医.治病.动土.纳畜.", 586 | "j": "嫁娶.安葬." 587 | }, 588 | "d0526": { 589 | "y": "嫁娶.纳采.出行.移徙.入宅.", 590 | "j": "动土.破土.安葬." 591 | }, 592 | "d0527": { 593 | "y": "订盟.纳采.祭祀.动土.破土.交易.立券.", 594 | "j": "嫁娶.安葬." 595 | }, 596 | "d0528": { 597 | "y": "嫁娶.裁衣.祭祀.出行.安床.作灶.移徙.入宅.破土.安葬.", 598 | "j": "赴任.捕捉." 599 | }, 600 | "d0529": { 601 | "y": "塞穴.结网.余事勿取.", 602 | "j": "诸事不宜." 603 | }, 604 | "d0530": { 605 | "y": "", 606 | "j": "" 607 | }, 608 | "d0531": { 609 | "y": "订盟.纳采.会亲友.安床.作灶.造畜椆栖.", 610 | "j": "开市.安葬." 611 | }, 612 | "d0601": { 613 | "y": "沐浴.平治道涂.扫舍.入殓.移柩.破土.启攒.安葬.余事勿取.", 614 | "j": "诸事不宜." 615 | }, 616 | "d0602": { 617 | "y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.安门.开市.交易.立券.挂匾.栽种.破土.安葬.", 618 | "j": "" 619 | }, 620 | "d0603": { 621 | "y": "祭祀.开光.出行.解除.塑绘.裁衣.入殓.移柩.破土.启攒.安葬.除服.成服.", 622 | "j": "嫁娶.上梁.修造.拆卸.架马.入宅.伐木.动土.出火.开柱眼." 623 | }, 624 | "d0604": { 625 | "y": "祭祀.解除.破屋.坏垣.余事勿取.", 626 | "j": "诸事不宜." 627 | }, 628 | "d0605": { 629 | "y": "祭祀.沐浴.破屋.坏垣.余事勿取.", 630 | "j": "入宅.嫁娶.移徙." 631 | }, 632 | "d0606": { 633 | "y": "嫁娶.安机械.交易.出行.祭祀.祈福.求嗣.斋醮.塑绘.开光.合帐.裁衣.放水.开池.掘井.", 634 | "j": "作灶.理发.造桥.行丧.安葬." 635 | }, 636 | "d0607": { 637 | "y": "纳采.冠笄.求医.治病.开市.立券.修造.动土.安机械.破土.安葬.", 638 | "j": "斋醮.祭祀.移徙.入宅.上梁.嫁娶." 639 | }, 640 | "d0608": { 641 | "y": "祭祀.作灶.余事勿取.", 642 | "j": "开市.安葬.破土.修坟.掘井." 643 | }, 644 | "d0609": { 645 | "y": "祭祀.祈福.求嗣.斋醮.安香.解除.移徙.入宅.会亲友.求医.治病.动土.破土.开生坟.合寿木.", 646 | "j": "合帐.上梁.经络.安葬.入殓." 647 | }, 648 | "d0610": { 649 | "y": "嫁娶.冠笄.修造.动土.作灶.移徙.入宅.补垣.塞穴.纳畜.牧养.架马.修造.动土.起基.定磉.开池.造船.", 650 | "j": "祈福.开光.掘井.开市.安葬." 651 | }, 652 | "d0611": { 653 | "y": "祭祀.交易.纳财.", 654 | "j": "斋醮.开渠.上梁.动土.破土." 655 | }, 656 | "d0612": { 657 | "y": "嫁娶.订盟.纳采.冠笄.会亲友.安机械.造车器.祭祀.出行.纳财.入宅.安香.出火.入学.塑绘.开光.拆卸.起基.修造.动土.牧养.栽种.安门.作厕.", 658 | "j": "行丧.伐木.作梁.作灶." 659 | }, 660 | "d0613": { 661 | "y": "开光.求嗣.出行.冠笄.嫁娶.伐木.架马.开柱眼.修造.移徙.入宅.开市.交易.立券.出行.安香.出火.挂匾.起基.修造.开生坟.合寿木.入殓.除服.成服.移柩.安葬.", 662 | "j": "安床.出货财.作灶.动土.破土." 663 | }, 664 | "d0614": { 665 | "y": "祭祀.沐浴.理发.嫁娶.作灶.整手足甲.扫舍.修饰垣墙.平治道涂.", 666 | "j": "斋醮.出行.治病.合寿木." 667 | }, 668 | "d0615": { 669 | "y": "安机械.移徙.入宅.出行.祭祀.祈福.斋醮.纳采.订盟.安香.出火.解除.会亲友.修造.动土.拆卸.起基.定磉.移徙.入宅.造屋.安床.修造.破土.安葬.入殓.立碑.", 670 | "j": "开市.伐木.作梁.作灶." 671 | }, 672 | "d0616": { 673 | "y": "祭祀.沐浴.捕捉.结网.畋猎.取渔.余事勿取.", 674 | "j": "开市.交易.嫁娶.安葬.行丧." 675 | }, 676 | "d0617": { 677 | "y": "破屋.坏垣.求医.治病.畋猎.余事勿取.", 678 | "j": "嫁娶.入宅." 679 | }, 680 | "d0618": { 681 | "y": "嫁娶.出行.安机械.祭祀.塑绘.开光.治病.经络.安床.结网.塞穴.破土.入殓.", 682 | "j": "开市.安门.掘井.作灶." 683 | }, 684 | "d0619": { 685 | "y": "订盟.纳采.会亲友.进人口.雕刻.拆卸.修造.动土.起基.开市.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.", 686 | "j": "" 687 | }, 688 | "d0620": { 689 | "y": "祭祀.捕捉.取渔.修饰垣墙.余事勿取.", 690 | "j": "诸事不宜." 691 | }, 692 | "d0621": { 693 | "y": "嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.", 694 | "j": "开市.安门." 695 | }, 696 | "d0622": { 697 | "y": "裁衣.作灶.移徙.入宅.纳畜.", 698 | "j": "嫁娶.安葬." 699 | }, 700 | "d0623": { 701 | "y": "祭祀.入殓.移柩.启攒.安葬.", 702 | "j": "上梁.动土.破土." 703 | }, 704 | "d0624": { 705 | "y": "订盟.纳采.出行.祈福.斋醮.安床.会亲友.", 706 | "j": "移徙.入宅.安葬." 707 | }, 708 | "d0625": { 709 | "y": "嫁娶.纳采.出行.求医.治病.开市.移徙.入宅.启攒.安葬.", 710 | "j": "动土.破土." 711 | }, 712 | "d0626": { 713 | "y": "嫁娶.祭祀.沐浴.扫舍.修饰垣墙.", 714 | "j": "行丧.安葬." 715 | }, 716 | "d0627": { 717 | "y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.", 718 | "j": "作灶." 719 | }, 720 | "d0628": { 721 | "y": "订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.", 722 | "j": "开市.安葬." 723 | }, 724 | "d0629": { 725 | "y": "诸事不宜.", 726 | "j": "诸事不宜." 727 | }, 728 | "d0630": { 729 | "y": "嫁娶.订盟.纳采.祭祀.祈福.入殓.破土.安葬.", 730 | "j": "开光.开市." 731 | }, 732 | "d0701": { 733 | "y": "开光.求医.治病.动土.上梁.入殓.破土.安葬.", 734 | "j": "嫁娶.开光." 735 | }, 736 | "d0702": { 737 | "y": "祭祀.栽种.余事勿取.", 738 | "j": "诸事不宜." 739 | }, 740 | "d0703": { 741 | "y": "嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.", 742 | "j": "安葬.开市.交易.立券." 743 | }, 744 | "d0704": { 745 | "y": "求嗣.嫁娶.纳采.合帐.裁衣.冠笄.伐木.作梁.修造.动土.起基.竖柱.上梁.安门.作灶.筑堤.造畜椆栖.", 746 | "j": "安葬.出行.祈福.栽种." 747 | }, 748 | "d0705": { 749 | "y": "祭祀.解除.余事勿取.", 750 | "j": "诸事不宜." 751 | }, 752 | "d0706": { 753 | "y": "嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.", 754 | "j": "安葬.行丧.伐木.作梁." 755 | }, 756 | "d0707": { 757 | "y": "祭祀.沐浴.塑绘.开光.入学.解除.扫舍.治病.开池.牧养.", 758 | "j": "嫁娶.出行.纳采.入宅.作灶." 759 | }, 760 | "d0708": { 761 | "y": "纳财.开市.交易.立券.出行.祭祀.祈福.求嗣.开光.解除.扫舍.起基.竖柱.安床.移徙.开仓.出货财.补垣.塞穴.栽种.纳畜.牧养.", 762 | "j": "斋醮.入宅.安门.安葬.破土.行丧." 763 | }, 764 | "d0709": { 765 | "y": "祭祀.修饰垣墙.平治道涂.", 766 | "j": "开市.动土.破土.嫁娶.修造.安葬." 767 | }, 768 | "d0710": { 769 | "y": "订盟.纳采.祭祀.祈福.开光.安香.出火.立券.安机械.移徙.入宅.竖柱.上梁.会亲友.安床.拆卸.挂匾.牧养.教牛马.", 770 | "j": "嫁娶.安葬.行丧.破土.修坟." 771 | }, 772 | "d0711": { 773 | "y": "沐浴.理发.捕捉.入殓.移柩.破土.启攒.安葬.", 774 | "j": "出火.嫁娶.入宅.作灶.破土.上梁.动土." 775 | }, 776 | "d0712": { 777 | "y": "求医.治病.破屋.坏垣.余事勿取.", 778 | "j": "嫁娶.出行." 779 | }, 780 | "d0713": { 781 | "y": "纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.", 782 | "j": "祈福.上梁.开仓.掘井.牧养." 783 | }, 784 | "d0714": { 785 | "y": "祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.", 786 | "j": "嫁娶.开市.栽种.合寿木." 787 | }, 788 | "d0715": { 789 | "y": "祭祀.进人口.纳财.纳畜.牧养.捕捉.余事勿取.", 790 | "j": "开市.入宅.安床.动土.安葬." 791 | }, 792 | "d0716": { 793 | "y": "祭祀.塑绘.开光.求医.治病.嫁娶.会亲友.放水.掘井.牧养.纳畜.开渠.安碓硙.", 794 | "j": "造屋.入宅.作灶.入学.安葬.行丧." 795 | }, 796 | "d0717": { 797 | "y": "祭祀.塞穴.结网.畋猎.余事勿取.", 798 | "j": "移徙.开市.入宅.嫁娶.开光.安门." 799 | }, 800 | "d0718": { 801 | "y": "开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.", 802 | "j": "动土.破土.安葬.治病." 803 | }, 804 | "d0719": { 805 | "y": "移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基.", 806 | "j": "开市.斋醮.安床.出行.经络." 807 | }, 808 | "d0720": { 809 | "y": "塑绘.出行.冠笄.嫁娶.进人口.裁衣.纳婿.造畜椆栖.交易.立券.牧养.开生坟.入殓.除服.成服.移柩.安葬.启攒.", 810 | "j": "" 811 | }, 812 | "d0721": { 813 | "y": "祭祀.冠笄.嫁娶.捕捉.结网.畋猎.取渔.余事勿取.", 814 | "j": "余事勿取." 815 | }, 816 | "d0722": { 817 | "y": "沐浴.扫舍.余事勿取.", 818 | "j": "诸事不宜." 819 | }, 820 | "d0723": { 821 | "y": "纳采.祭祀.祈福.解除.动土.破土.安葬.", 822 | "j": "嫁娶.移徙.入宅." 823 | }, 824 | "d0724": { 825 | "y": "祭祀.破屋.坏垣.余事勿取.", 826 | "j": "诸事不宜." 827 | }, 828 | "d0725": { 829 | "y": "嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.", 830 | "j": "祭祀.祈福." 831 | }, 832 | "d0726": { 833 | "y": "嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.", 834 | "j": "赴任." 835 | }, 836 | "d0727": { 837 | "y": "祭祀.作灶.纳财.捕捉.", 838 | "j": "开市.破土." 839 | }, 840 | "d0728": { 841 | "y": "嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅.", 842 | "j": "造庙.安葬." 843 | }, 844 | "d0729": { 845 | "y": "补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.", 846 | "j": "诸事不宜." 847 | }, 848 | "d0730": { 849 | "y": "嫁娶.纳采.出行.祭祀.祈福.解除.移徙.入宅.", 850 | "j": "动土.安葬." 851 | }, 852 | "d0731": { 853 | "y": "嫁娶.祭祀.祈福.斋醮.治病.破土.安葬.", 854 | "j": "开市.入宅." 855 | }, 856 | "d0801": { 857 | "y": "嫁娶.出行.开市.安床.入殓.启攒.安葬.", 858 | "j": "祈福.动土.破土." 859 | }, 860 | "d0802": { 861 | "y": "嫁娶.祭祀.裁衣.结网.冠笄.沐浴.", 862 | "j": "开仓.出货财.置产.安葬.动土.破土.掘井.栽种." 863 | }, 864 | "d0803": { 865 | "y": "入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.", 866 | "j": "嫁娶.破土.置产.栽种.安葬.修坟.行丧." 867 | }, 868 | "d0804": { 869 | "y": "祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.", 870 | "j": "嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种." 871 | }, 872 | "d0805": { 873 | "y": "破屋.坏垣.余事勿取.", 874 | "j": "诸事不宜." 875 | }, 876 | "d0806": { 877 | "y": "嫁娶.开光.出行.理发.作梁.出火.拆卸.修造.开市.交易.立券.挂匾.动土.入宅.移徙.安床.栽种.", 878 | "j": "伐木.祭祀.纳畜.祭祀." 879 | }, 880 | "d0807": { 881 | "y": "订盟.纳采.祭祀.祈福.安香.出火.开市.立券.入宅.挂匾.造桥.启攒.安葬.", 882 | "j": "动土.破土.嫁娶.掘井.安床." 883 | }, 884 | "d0808": { 885 | "y": "嫁娶.祭祀.祈福.斋醮.普渡.移徙.入宅.动土.治病.开市.交易.立券.开光.修造.造车器.安香.安床.捕捉.畋猎.结网.", 886 | "j": "纳采.订盟.经络.行丧.安葬.探病." 887 | }, 888 | "d0809": { 889 | "y": "嫁娶.订盟.纳采.作灶.冠笄.裁衣.会亲友.纳畜.牧养.安机械.开市.立券.纳财.安床.", 890 | "j": "掘井.出行.破土.行丧.安葬." 891 | }, 892 | "d0810": { 893 | "y": "嫁娶.订盟.纳采.祭祀.斋醮.普渡.解除.出行.会亲友.开市.纳财.修造.动土.竖柱.上梁.开光.开仓.出货财.纳畜.牧养.开池.破土.启攒.", 894 | "j": "出火.入宅.造屋.安门.安葬." 895 | }, 896 | "d0811": { 897 | "y": "嫁娶.普渡.祭祀.祈福.补垣.塞穴.断蚁.筑堤.入殓.除服.成服.安葬.", 898 | "j": "动土.破土.掘井.开光.上梁.词讼." 899 | }, 900 | "d0812": { 901 | "y": "嫁娶.冠笄.祭祀.沐浴.普渡.出行.纳财.扫舍.纳畜.赴任.", 902 | "j": "开市.动土.破土.安床.开仓.上梁." 903 | }, 904 | "d0813": { 905 | "y": "祭祀.沐浴.理发.整手足甲.冠笄.解除.入殓.移柩.破土.启攒.安葬.", 906 | "j": "嫁娶.出行.入宅.开市.安门." 907 | }, 908 | "d0814": { 909 | "y": "塑绘.冠笄.嫁娶.会亲友.进人口.经络.裁衣.栽种.纳畜.牧养.补垣.塞穴.捕捉.", 910 | "j": "祈福.开市.动土.行丧.安葬." 911 | }, 912 | "d0815": { 913 | "y": "出行.沐浴.订盟.纳采.裁衣.竖柱.上梁.移徙.纳畜.牧养.", 914 | "j": "嫁娶.安门.动土.安葬." 915 | }, 916 | "d0816": { 917 | "y": "纳采.订盟.嫁娶.祭祀.祈福.普渡.开光.安香.出火.移徙.入宅.竖柱.修造.动土.竖柱.上梁.起基.造屋.安门.造庙.造桥.破土.启攒.安葬.", 918 | "j": "开市.立券.纳财.作灶." 919 | }, 920 | "d0817": { 921 | "y": "祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒.", 922 | "j": "嫁娶.纳采.订盟.开市.入宅." 923 | }, 924 | "d0818": { 925 | "y": "破屋.坏垣.治病.余事勿取.", 926 | "j": "行丧.安葬." 927 | }, 928 | "d0819": { 929 | "y": "祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.", 930 | "j": "动土.破土.订盟.安床.开池." 931 | }, 932 | "d0820": { 933 | "y": "祈福.求嗣.解除.订盟.纳采.动土.起基.放水.造仓.开市.纳畜.牧养.开生坟.入殓.除服.成服.移柩.破土.安葬.", 934 | "j": "" 935 | }, 936 | "d0821": { 937 | "y": "塑绘.开光.解除.订盟.纳采.嫁娶.出火.修造.动土.移徙.入宅.拆卸.起基.安门.分居.开市.交易.立券.纳财.纳畜.牧养.", 938 | "j": "" 939 | }, 940 | "d0822": { 941 | "y": "祈福.出行.订盟.纳采.嫁娶.裁衣.动土.安床.放水.开市.掘井.交易.立券.栽种.开渠.除服.成服.移柩.破土.", 942 | "j": "" 943 | }, 944 | "d0823": { 945 | "y": "嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅.", 946 | "j": "动土.破土." 947 | }, 948 | "d0824": { 949 | "y": "嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.", 950 | "j": "作灶.动土.破土." 951 | }, 952 | "d0825": { 953 | "y": "订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.安葬.", 954 | "j": "嫁娶.开市." 955 | }, 956 | "d0826": { 957 | "y": "订盟.纳采.出行.会亲友.修造.上梁.移徙.入宅.", 958 | "j": "开市.安葬." 959 | }, 960 | "d0827": { 961 | "y": "沐浴.修饰垣墙.平治道涂.余事勿取.", 962 | "j": "嫁娶.祈福.余事勿取." 963 | }, 964 | "d0828": { 965 | "y": "嫁娶.祭祀.祈福.斋醮.动土.移徙.入宅.", 966 | "j": "开市.安葬." 967 | }, 968 | "d0829": { 969 | "y": "捕捉.结网.入殓.破土.安葬.", 970 | "j": "嫁娶.入宅." 971 | }, 972 | "d0830": { 973 | "y": "沐浴.治病.破屋.坏垣.余事勿取.", 974 | "j": "诸事不宜." 975 | }, 976 | "d0831": { 977 | "y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.移徙.入宅.启攒.安葬.", 978 | "j": "动土.破土." 979 | }, 980 | "d0901": { 981 | "y": "嫁娶.订盟.纳采.祭祀.祈福.求医.治病.动土.移徙.入宅.破土.安葬.", 982 | "j": "开光.针灸." 983 | }, 984 | "d0902": { 985 | "y": "订盟.纳采.祭祀.祈福.安机械.作灶.纳畜.", 986 | "j": "动土.安葬." 987 | }, 988 | "d0903": { 989 | "y": "嫁娶.祭祀.祈福.求嗣.出行.动土.安床.掘井.破土.启攒.", 990 | "j": "入宅.作梁.安门.伐木.修造.上梁.入殓.造屋." 991 | }, 992 | "d0904": { 993 | "y": "嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.移徙.动土.安床.入殓.破土.安葬.启攒.", 994 | "j": "造屋.开光.理发.造船.掘井.作灶." 995 | }, 996 | "d0905": { 997 | "y": "祭祀.祈福.求嗣.开光.出行.解除.上梁.造屋.移徙.安门.纳财.牧养.纳畜.安葬.启攒.入殓.", 998 | "j": "破土.置产.掘井.动土.安床." 999 | }, 1000 | "d0906": { 1001 | "y": "祭祀.解除.沐浴.理发.整手足甲.入殓.移柩.破土.安葬.扫舍.", 1002 | "j": "嫁娶.会亲友.进人口.出行.入宅.移徙.赴任.作灶." 1003 | }, 1004 | "d0907": { 1005 | "y": "嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.", 1006 | "j": "针灸.伐木.作梁.造庙.行丧.安葬." 1007 | }, 1008 | "d0908": { 1009 | "y": "出行.开市.交易.立券.安机械.出火.上梁.移徙.", 1010 | "j": "嫁娶.安葬.动土.造桥." 1011 | }, 1012 | "d0909": { 1013 | "y": "祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.", 1014 | "j": "斋醮.嫁娶.移徙.出行.上梁.入宅." 1015 | }, 1016 | "d0910": { 1017 | "y": "嫁娶.造车器.安机械.祭祀.祈福.开光.安香.出火.出行.开市.立券.修造.动土.移徙.入宅.破土.安葬.", 1018 | "j": "纳采.订盟.架马.词讼.开渠." 1019 | }, 1020 | "d0911": { 1021 | "y": "沐浴.捕捉.入殓.除服.成服.破土.启攒.安葬.", 1022 | "j": "祭祀.嫁娶.安床.开市.入宅.探病.上梁." 1023 | }, 1024 | "d0912": { 1025 | "y": "余事勿取.", 1026 | "j": "探病.余事勿取." 1027 | }, 1028 | "d0913": { 1029 | "y": "订盟.纳采.祭祀.祈福.安香.出火.修造.动土.上梁.安门.起基.竖柱.上梁.定磉.开池.移徙.入宅.立券.破土.", 1030 | "j": "嫁娶.造庙.造桥.造船.作灶.安葬." 1031 | }, 1032 | "d0914": { 1033 | "y": "开光.求嗣.雕刻.嫁娶.订盟.纳采.出火.拆卸.修造.动土.起基.上梁.放水.移徙.入宅.造仓.造船.开市.开池.纳畜.牧养.挂匾.", 1034 | "j": "行丧.安葬.合寿木." 1035 | }, 1036 | "d0915": { 1037 | "y": "祭祀.嫁娶.捕捉.", 1038 | "j": "开光.动土.破土.开市.修造.入宅.安门." 1039 | }, 1040 | "d0916": { 1041 | "y": "祭祀.普渡.解除.会亲友.捕捉.畋猎.启攒.除服.成服.移柩.", 1042 | "j": "嫁娶.开市.动土.掘井.开池.安葬." 1043 | }, 1044 | "d0917": { 1045 | "y": "祭祀.出行.解除.冠笄.嫁娶.伐木.架马.开柱眼.修造.动土.移徙.入宅.开生坟.合寿木.入殓.移柩.破土.安葬.修坟.", 1046 | "j": "开光.安床." 1047 | }, 1048 | "d0918": { 1049 | "y": "祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马.", 1050 | "j": "动土.作灶.行丧.安葬.修坟." 1051 | }, 1052 | "d0919": { 1053 | "y": "出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕.", 1054 | "j": "造庙.安门.行丧.安葬." 1055 | }, 1056 | "d0920": { 1057 | "y": "祭祀.沐浴.解除.理发.冠笄.安机械.作灶.造仓.开市.开池.作厕.补垣.塞穴.断蚁.结网.", 1058 | "j": "嫁娶.安葬." 1059 | }, 1060 | "d0921": { 1061 | "y": "祭祀.沐浴.修饰垣墙.平治道涂.", 1062 | "j": "嫁娶.入宅." 1063 | }, 1064 | "d0922": { 1065 | "y": "祭祀.会亲友.纳采.嫁娶.开光.塑绘.斋醮.安香.开市.立券.除服.成服.入殓.移柩.安葬.赴任.进人口.出行.裁衣.修造.动土.上梁.经络.交易.", 1066 | "j": "入宅.伐木." 1067 | }, 1068 | "d0923": { 1069 | "y": "祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.", 1070 | "j": "作灶.祭祀.入宅.嫁娶." 1071 | }, 1072 | "d0924": { 1073 | "y": "祭祀.沐浴.破屋.坏垣.余事勿取.", 1074 | "j": "移徙.入宅.出行.栽种." 1075 | }, 1076 | "d0925": { 1077 | "y": "祭祀.塑绘.开光.出行.解除.订盟.嫁娶.拆卸.起基.安床.入宅.开市.入殓.除服.成服.移柩.破土.谢土.挂匾.开柱眼.交易.", 1078 | "j": "造桥.冠笄.造屋.掘井." 1079 | }, 1080 | "d0926": { 1081 | "y": "祭祀.赴任.动土.上梁.开光.塑绘.冠笄.拆卸.起基.安床.开市.立券.赴任.经络.", 1082 | "j": "定磉.安葬." 1083 | }, 1084 | "d0927": { 1085 | "y": "祭祀.裁衣.冠笄.嫁娶.纳婿.会亲友.除服.成服.移柩.捕捉.进人口.入殓.", 1086 | "j": "移徙.入宅.作灶.安葬." 1087 | }, 1088 | "d0928": { 1089 | "y": "祭祀.诸事不宜.", 1090 | "j": "入殓.安葬.开市.交易." 1091 | }, 1092 | "d0929": { 1093 | "y": "祭祀.裁衣.冠笄.嫁娶.安机械.拆卸.动土.起基.移徙.入宅.入殓.启攒.安葬.造仓.经络.", 1094 | "j": "安床.开光.开市.交易." 1095 | }, 1096 | "d0930": { 1097 | "y": "祭祀.出行.成服.除服.沐浴.入殓.", 1098 | "j": "动土.冠笄.移徙.入宅.开市.竖柱.上梁." 1099 | }, 1100 | "d1001": { 1101 | "y": "祭祀.沐浴.赴任.出行.余事勿取.", 1102 | "j": "诸事不宜." 1103 | }, 1104 | "d1002": { 1105 | "y": "诸事不宜.", 1106 | "j": "诸事不宜." 1107 | }, 1108 | "d1003": { 1109 | "y": "沐浴.入殓.移柩.除服.成服.破土.平治道涂.", 1110 | "j": "嫁娶.移徙.入宅.开市." 1111 | }, 1112 | "d1004": { 1113 | "y": "嫁娶.祭祀.祈福.求嗣.沐浴.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.入宅.移徙.安床.栽种.纳畜.入殓.安葬.启攒.除服.成服.", 1114 | "j": "" 1115 | }, 1116 | "d1005": { 1117 | "y": "开光.解除.起基.动土.拆卸.上梁.立碑.修坟.安葬.破土.启攒.移柩.", 1118 | "j": "嫁娶.出行.安床.作灶.祭祀.入宅.移徙.出火.进人口.置产." 1119 | }, 1120 | "d1006": { 1121 | "y": "破屋.坏垣.余事勿取.", 1122 | "j": "诸事不宜." 1123 | }, 1124 | "d1007": { 1125 | "y": "嫁娶.祈福.求嗣.出行.出火.拆卸.修造.动土.上梁.开光.进人口.开市.交易.立券.挂匾.安床.入宅.移徙.栽种.伐木.入殓.破土.除服.成服.", 1126 | "j": "" 1127 | }, 1128 | "d1008": { 1129 | "y": "订盟.纳采.会亲友.交易.立券.纳财.栽种.纳畜.牧养.", 1130 | "j": "嫁娶.开市.入宅.祈福.安葬." 1131 | }, 1132 | "d1009": { 1133 | "y": "造车器.嫁娶.订盟.纳采.会亲友.祭祀.出行.开市.立券.移徙.入宅.破土.安葬.", 1134 | "j": "上梁.开光.造屋.架马.合寿木." 1135 | }, 1136 | "d1010": { 1137 | "y": "祭祀.作灶.纳财.捕捉.畋猎.余事勿取.", 1138 | "j": "动土.破土.开市.安葬." 1139 | }, 1140 | "d1011": { 1141 | "y": "嫁娶.订盟.纳采.祭祀.祈福.出行.求医.治病.出火.移徙.入宅.", 1142 | "j": "开市.开仓.出货财.安床.安门.安葬." 1143 | }, 1144 | "d1012": { 1145 | "y": "冠笄.祭祀.沐浴.作灶.理发.整手足甲.扫舍.补垣.塞穴.入殓.破土.启攒.", 1146 | "j": "开光.嫁娶.会亲友.栽种.针灸.安葬." 1147 | }, 1148 | "d1013": { 1149 | "y": "纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜.", 1150 | "j": "造庙.造船.动土.破土.安葬." 1151 | }, 1152 | "d1014": { 1153 | "y": "出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍.", 1154 | "j": "嫁娶.动土.破土.修坟." 1155 | }, 1156 | "d1015": { 1157 | "y": "沐浴.理发.冠笄.安床.开市.立券.会亲友.交易.纳财.结网.教牛马.", 1158 | "j": "移徙.入宅.出行.祈福.嫁娶." 1159 | }, 1160 | "d1016": { 1161 | "y": "祭祀.造畜椆栖.修饰垣墙.平治道涂.余事勿取.", 1162 | "j": "嫁娶.开市.安床.掘井." 1163 | }, 1164 | "d1017": { 1165 | "y": "捕捉.结网.入殓.除服.成服.移柩.破土.安葬.启攒.立碑.", 1166 | "j": "嫁娶.祭祀.入宅.造屋.移徙." 1167 | }, 1168 | "d1018": { 1169 | "y": "祭祀.祈福.求嗣.斋醮.造庙.出火.安机械.会亲友.开市.交易.立券.纳财.习艺.经络.求医.治病.开池.作厕.畋猎.结网.栽种.牧养.安葬.破土.启攒.", 1170 | "j": "开光.嫁娶.掘井.伐木.作梁." 1171 | }, 1172 | "d1019": { 1173 | "y": "破屋.坏垣.余事勿取.", 1174 | "j": "诸事不宜." 1175 | }, 1176 | "d1020": { 1177 | "y": "会亲友.嫁娶.订盟.纳采.纳婿.拆卸.修造.动土.起基.竖柱.上梁.安床.会亲友.纳财.", 1178 | "j": "出行.祈福.安葬.作灶." 1179 | }, 1180 | "d1021": { 1181 | "y": "祭祀.塑绘.开光.祈福.斋醮.出行.订盟.纳采.裁衣.嫁娶.拆卸.修造.安床.入宅.安香.入殓.启攒.安葬.谢土.赴任.会亲友.进人口.出行.移徙.上梁.经络.开市.交易.立券.纳财.", 1182 | "j": "开仓.冠笄.伐木.作梁." 1183 | }, 1184 | "d1022": { 1185 | "y": "祭祀.作灶.入殓.除服.成服.畋猎.", 1186 | "j": "栽种.动土.安葬.开市." 1187 | }, 1188 | "d1023": { 1189 | "y": "祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜.", 1190 | "j": "作灶.入殓.安葬.安床." 1191 | }, 1192 | "d1024": { 1193 | "y": "嫁娶.祭祀.安机械.入殓.破土.安葬.", 1194 | "j": "动土.上梁." 1195 | }, 1196 | "d1025": { 1197 | "y": "作灶.造畜椆栖.", 1198 | "j": "行丧.安葬." 1199 | }, 1200 | "d1026": { 1201 | "y": "沐浴.理发.入学.习艺.进人口.", 1202 | "j": "嫁娶.入宅." 1203 | }, 1204 | "d1027": { 1205 | "y": "开光.针灸.会亲友.启攒.安葬.", 1206 | "j": "开市.动土.破土." 1207 | }, 1208 | "d1028": { 1209 | "y": "祭祀.结网.造畜椆栖.余事勿取.", 1210 | "j": "余事勿取." 1211 | }, 1212 | "d1029": { 1213 | "y": "入殓.除服.成服.移柩.破土.启攒.安葬.", 1214 | "j": "移徙.入宅." 1215 | }, 1216 | "d1030": { 1217 | "y": "嫁娶.订盟.纳采.出行.祭祀.祈福.动土.移徙.入宅.破土.安葬.", 1218 | "j": "开市.赴任." 1219 | }, 1220 | "d1031": { 1221 | "y": "祭祀.解除.破屋.坏垣.余事勿取.", 1222 | "j": "余事勿取." 1223 | }, 1224 | "d1101": { 1225 | "y": "订盟.纳采.会亲友.安机械.纳财.牧养.", 1226 | "j": "祈福.安葬." 1227 | }, 1228 | "d1102": { 1229 | "y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.", 1230 | "j": "斋醮.安门." 1231 | }, 1232 | "d1103": { 1233 | "y": "祭祀.塞穴.余事勿取.", 1234 | "j": "诸事不宜." 1235 | }, 1236 | "d1104": { 1237 | "y": "祭祀.祈福.求嗣.开光.开市.出行.解除.动土.起基.置产.栽种.", 1238 | "j": "嫁娶.作灶.修坟.安门.入宅.立碑.安葬.安床." 1239 | }, 1240 | "d1105": { 1241 | "y": "祭祀.解除.裁衣.理发.安床.作灶.造畜椆栖.放水.筑堤.补垣.塞穴.整手足甲.扫舍.", 1242 | "j": "嫁娶.开光.会亲友.掘井.安门.栽种." 1243 | }, 1244 | "d1106": { 1245 | "y": "祭祀.出行.裁衣.冠笄.会亲友.造畜椆栖.嫁娶.竖柱.上梁.移徙.纳财.纳畜.", 1246 | "j": "动土.伐木.作梁.行丧.安葬.开生坟." 1247 | }, 1248 | "d1107": { 1249 | "y": "祭祀.沐浴.出行.余事勿取.", 1250 | "j": "开市.动土.破土.行丧.安葬." 1251 | }, 1252 | "d1108": { 1253 | "y": "嫁娶.造车器.出行.会亲友.移徙.入宅.修造.动土.雕刻.开光.安香.出火.理发.会亲友.造屋.合脊.起基.归岫.安门.拆卸.扫舍.栽种.造畜椆栖.", 1254 | "j": "开市.纳采.造庙.安床.开渠.安葬." 1255 | }, 1256 | "d1109": { 1257 | "y": "塑绘.会亲友.安机械.塞穴.结网.裁衣.经络.", 1258 | "j": "嫁娶.开市.祈福.斋醮.安葬." 1259 | }, 1260 | "d1110": { 1261 | "y": "纳采.移徙.纳财.开市.交易.立券.纳财.入宅.修造.动土.竖柱.起基.定磉.造庙.安香.出火.修饰垣墙.平治道涂.会亲友.出行.开池.作厕.", 1262 | "j": "开仓.造屋.造桥.祭祀." 1263 | }, 1264 | "d1111": { 1265 | "y": "订盟.纳采.纳财.开市.立券.祭祀.祈福.移徙.入宅.出行.造屋.起基.修造.动土.竖柱.上梁.安门.安香.出火.教牛马.会亲友.破土.", 1266 | "j": "嫁娶.安葬.掘井.置产.造船." 1267 | }, 1268 | "d1112": { 1269 | "y": "嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土.", 1270 | "j": "开市.造庙.动土.破土." 1271 | }, 1272 | "d1113": { 1273 | "y": "破屋.坏垣.祭祀.余事勿取.", 1274 | "j": "嫁娶.安葬." 1275 | }, 1276 | "d1114": { 1277 | "y": "嫁娶.纳采.订盟.祭祀.冠笄.裁衣.伐木.作梁.架马.定磉.开柱眼.作灶.移徙.安床.畋猎.结网.开池.作厕.除服.成服.启攒.入殓.移柩.安葬.", 1278 | "j": "造屋.造船.动土.破土." 1279 | }, 1280 | "d1115": { 1281 | "y": "纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.会亲友.解除.入学.纳财.交易.立券.经络.起基.动土.定磉.开池.栽种.纳畜.牧养.破土.入殓.立碑.安葬.", 1282 | "j": "嫁娶.开市.入宅.出火.移徙." 1283 | }, 1284 | "d1116": { 1285 | "y": "捕捉.畋猎.会亲友.解除.入殓.除服.成服.移柩.余事勿取.", 1286 | "j": "安床.安门.破土.修坟.安葬." 1287 | }, 1288 | "d1117": { 1289 | "y": "祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓硙.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土.", 1290 | "j": "移徙.入宅.安门.作梁.安葬." 1291 | }, 1292 | "d1118": { 1293 | "y": "嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.", 1294 | "j": "开光.掘井.安葬.谢土.修坟." 1295 | }, 1296 | "d1119": { 1297 | "y": "祭祀.沐浴.余事勿取.", 1298 | "j": "诸事不宜." 1299 | }, 1300 | "d1120": { 1301 | "y": "祭祀.会亲友.嫁娶.沐浴.修造.动土.祈福.开光.塑绘.出行.订盟.纳采.裁衣.入殓.除服.成服.移柩.启攒.赴任.竖柱.上梁.纳财.扫舍.栽种.纳畜.伐木.", 1302 | "j": "入宅.作灶.安床.开仓." 1303 | }, 1304 | "d1121": { 1305 | "y": "理发.会亲友.补垣.塞穴.结网.", 1306 | "j": "嫁娶.入宅.安门.移徙." 1307 | }, 1308 | "d1122": { 1309 | "y": "祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.除服.成服.入殓.移柩.安葬.谢土.赴任.会亲友.进人口.出行.竖柱.上梁.经络.开市.交易.立券.纳财.开仓.", 1310 | "j": "作灶.治病.伐木.作梁." 1311 | }, 1312 | "d1123": { 1313 | "y": "祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友.", 1314 | "j": "作灶.治病." 1315 | }, 1316 | "d1124": { 1317 | "y": "祭祀.塑绘.开光.订盟.纳采.嫁娶.安床.进人口.入殓.除服.成服.移柩.启攒.安葬.立碑.", 1318 | "j": "开市.交易.破土.作灶." 1319 | }, 1320 | "d1125": { 1321 | "y": "祭祀.解除.破屋.坏垣.余事勿取.", 1322 | "j": "诸事不宜." 1323 | }, 1324 | "d1126": { 1325 | "y": "祭祀.解除.祈福.开光.塑绘.斋醮.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.入殓.除服.成服.移柩.启攒.安床.赴任.出行.移徙.竖柱.上梁.伐木.栽种.破土.安葬.纳畜.", 1326 | "j": "造屋.治病." 1327 | }, 1328 | "d1127": { 1329 | "y": "祭祀.祈福.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造畜椆栖.入殓.移柩.启攒.安葬.谢土.除服.成服.会亲友.竖柱.上梁.经络.开市.交易.立券.纳财.纳畜.筑堤.", 1330 | "j": "嫁娶.入宅.治病.赴任." 1331 | }, 1332 | "d1128": { 1333 | "y": "沐浴.扫舍.余事勿取.", 1334 | "j": "诸事不宜." 1335 | }, 1336 | "d1129": { 1337 | "y": "诸事不宜.", 1338 | "j": "诸事不宜." 1339 | }, 1340 | "d1130": { 1341 | "y": "祈福.斋醮.出行.订盟.纳采.入殓.移柩.破土.安葬.立碑.结网.", 1342 | "j": "入宅.作灶." 1343 | }, 1344 | "d1201": { 1345 | "y": "祭祀.沐浴.出行.冠笄.进人口.余事勿取.", 1346 | "j": "嫁娶.动土.安葬.作灶." 1347 | }, 1348 | "d1202": { 1349 | "y": "祭祀.祈福.斋醮.塑绘.开光.订盟.纳采.裁衣.冠笄.嫁娶.拆卸.入宅.安香.入殓.移柩.理发.安葬.修坟.谢土.赴任.移徙.沐浴.治病.破土.启攒.整手足甲.入学.作梁.", 1350 | "j": "开市." 1351 | }, 1352 | "d1203": { 1353 | "y": "诸事不宜.", 1354 | "j": "诸事不宜." 1355 | }, 1356 | "d1204": { 1357 | "y": "开市.交易.立券.挂匾.纳财.开光.出行.入宅.移徙.安床.纳畜.入殓.移柩.安葬.", 1358 | "j": "栽种.破土.置产.祭祀.嫁娶.动土.作灶.祈福." 1359 | }, 1360 | "d1205": { 1361 | "y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.出行.拆卸.进人口.入宅.移徙.安床.栽种.动土.修造.纳畜.入殓.安葬.立碑.除服.成服.", 1362 | "j": "" 1363 | }, 1364 | "d1206": { 1365 | "y": "开光.解除.拆卸.修造.动土.安床.纳畜.安葬.启攒.入殓.", 1366 | "j": "嫁娶.开市.出火.栽种.破土.动土.入宅.移徙.安香.分居.掘井.作灶." 1367 | }, 1368 | "d1207": { 1369 | "y": "嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓硙.动土.上梁.移徙.入宅.", 1370 | "j": "出行.掘井.破土.行丧.安葬." 1371 | }, 1372 | "d1208": { 1373 | "y": "祭祀.沐浴.破屋.坏垣.余事勿取.", 1374 | "j": "嫁娶.移徙.入宅.探病.出行.造屋." 1375 | }, 1376 | "d1209": { 1377 | "y": "冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.", 1378 | "j": "安门.动土.破土.行丧.安葬.成服." 1379 | }, 1380 | "d1210": { 1381 | "y": "纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.", 1382 | "j": "嫁娶.动土.安床.造桥.掘井." 1383 | }, 1384 | "d1211": { 1385 | "y": "祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.", 1386 | "j": "开市.斋醮.破土.安葬." 1387 | }, 1388 | "d1212": { 1389 | "y": "祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.", 1390 | "j": "移徙.开市.入宅.安葬." 1391 | }, 1392 | "d1213": { 1393 | "y": "纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.", 1394 | "j": "嫁娶.祈福.开光.掘井.安葬.行丧." 1395 | }, 1396 | "d1214": { 1397 | "y": "合帐.裁衣.教牛马.余事勿取.", 1398 | "j": "入宅.动土.破土.嫁娶.作灶.造船." 1399 | }, 1400 | "d1215": { 1401 | "y": "纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.", 1402 | "j": "斋醮.作梁.掘井.行丧.安葬." 1403 | }, 1404 | "d1216": { 1405 | "y": "纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.", 1406 | "j": "嫁娶.祈福.出火.移徙.入宅." 1407 | }, 1408 | "d1217": { 1409 | "y": "祭祀.入殓.移柩.余事勿取.", 1410 | "j": "入宅.修造.动土.破土.安门.上梁." 1411 | }, 1412 | "d1218": { 1413 | "y": "塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.", 1414 | "j": "掘井.伐木.斋醮.作灶." 1415 | }, 1416 | "d1219": { 1417 | "y": "祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.", 1418 | "j": "出行.安葬.修坟.开市." 1419 | }, 1420 | "d1220": { 1421 | "y": "祭祀.求医.破屋.坏垣.余事勿取.", 1422 | "j": "诸事不宜." 1423 | }, 1424 | "d1221": { 1425 | "y": "祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.", 1426 | "j": "开光.栽种.治病.安门.作灶." 1427 | }, 1428 | "d1222": { 1429 | "y": "塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土.", 1430 | "j": "" 1431 | }, 1432 | "d1223": { 1433 | "y": "祭祀.沐浴.安床.纳财.畋猎.捕捉.", 1434 | "j": "开市.破土." 1435 | }, 1436 | "d1224": { 1437 | "y": "订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.", 1438 | "j": "嫁娶.作灶." 1439 | }, 1440 | "d1225": { 1441 | "y": "出行.沐浴.理发.补垣.塞穴.", 1442 | "j": "入宅.安葬." 1443 | }, 1444 | "d1226": { 1445 | "y": "教牛马.余事勿取.", 1446 | "j": "入宅.动土.破土.余事勿取." 1447 | }, 1448 | "d1227": { 1449 | "y": "嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.", 1450 | "j": "开市.安葬." 1451 | }, 1452 | "d1228": { 1453 | "y": "开市.立券.开光.解除.安机械.上梁.启攒.安葬.", 1454 | "j": "嫁娶.祈福." 1455 | }, 1456 | "d1229": { 1457 | "y": "平治道涂.余事勿取.", 1458 | "j": "诸事不宜." 1459 | }, 1460 | "d1230": { 1461 | "y": "求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.", 1462 | "j": "开市.嫁娶." 1463 | }, 1464 | "d1231": { 1465 | "y": "嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅.", 1466 | "j": "开市.安葬." 1467 | } 1468 | }; 1469 | -------------------------------------------------------------------------------- /lib/wt2014.js: -------------------------------------------------------------------------------- 1 | window.Calendar = window.Calendar||{}; 2 | window.Calendar.Holiday = window.Calendar.Holiday || {}; 3 | window.Calendar.Holiday.y2014 = { 4 | "d0101": 1, 5 | "d0131": 1, 6 | "d0201": 1, 7 | "d0202": 1, 8 | "d0203": 1, 9 | "d0204": 1, 10 | "d0205": 1, 11 | "d0206": 1, 12 | "d0405": 1, 13 | "d0407": 1, 14 | "d0501": 1, 15 | "d0502": 1, 16 | "d0503": 1, 17 | "d0602": 1, 18 | "d0908": 1, 19 | "d1001": 1, 20 | "d1002": 1, 21 | "d1003": 1, 22 | "d1004": 1, 23 | "d1005": 1, 24 | "d1006": 1, 25 | "d1007": 1 26 | }; -------------------------------------------------------------------------------- /lib/wt2015.js: -------------------------------------------------------------------------------- 1 | window.Calendar = window.Calendar||{}; 2 | window.Calendar.Holiday = window.Calendar.Holiday || {}; 3 | window.Calendar.Holiday.y2015 = { 4 | "d0101": 1, 5 | "d0102": 1, 6 | "d0103": 1, 7 | "d0218": 1, 8 | "d0219": 1, 9 | "d0220": 1, 10 | "d0221": 1, 11 | "d0222": 1, 12 | "d0223": 1, 13 | "d0404": 1, 14 | "d0405": 1, 15 | "d0406": 1, 16 | "d0501": 1, 17 | "d0502": 1, 18 | "d0503": 1, 19 | "d0620": 1, 20 | "d0622": 1, 21 | "d0903": 1, 22 | "d0904": 1, 23 | "d0905": 1, 24 | "d0927": 1, 25 | "d1001": 1, 26 | "d1002": 1, 27 | "d1003": 1, 28 | "d1004": 1, 29 | "d1005": 1, 30 | "d1006": 1, 31 | "d1007": 1 32 | }; -------------------------------------------------------------------------------- /lib/wt2016.js: -------------------------------------------------------------------------------- 1 | window.Calendar = window.Calendar||{}; 2 | window.Calendar.Holiday = window.Calendar.Holiday || {}; 3 | window.Calendar.Holiday.y2016 = { 4 | "d0101": 1, 5 | "d0102": 1, 6 | "d0103": 1, 7 | "d0207": 1, 8 | "d0208": 1, 9 | "d0209": 1, 10 | "d0210": 1, 11 | "d0211": 1, 12 | "d0212": 1, 13 | "d0213": 1, 14 | "d0402": 1, 15 | "d0403": 1, 16 | "d0404": 1, 17 | "d0430": 1, 18 | "d0501": 1, 19 | "d0502": 1, 20 | "d0609": 1, 21 | "d0610": 1, 22 | "d0611": 1, 23 | "d0915": 1, 24 | "d0916": 1, 25 | "d0917": 1, 26 | "d1001": 1, 27 | "d1002": 1, 28 | "d1003": 1, 29 | "d1004": 1, 30 | "d1005": 1, 31 | "d1006": 1, 32 | "d1007": 1 33 | }; 34 | 35 | /** 36 | * 元旦 01月01日~01月03日 37 | * 春节 02月07日~02月13日 38 | * 清明节 04月02日~04月04日 39 | * 劳动节 04月30日~05月02日 40 | * 端午节 06月09日~06月11日 41 | * 中秋节 09月15日~09月17日 42 | * 国庆节 10月01日~10月07日 43 | */ -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "calendar", 3 | "version": "1.0.0", 4 | "description": "万年历", 5 | "author": "魏国兴", 6 | "description" : "纯JavaScript万年历,无依赖", 7 | "keywords" : "javascript,calendar,万年历", 8 | "devDependencies": { 9 | "gulp": "^3.9.1", 10 | "gulp-clean": "^0.3.2", 11 | "gulp-concat": "^2.6.0", 12 | "gulp-html-replace": "^1.5.5", 13 | "gulp-jshint": "^2.0.0", 14 | "gulp-minify-css": "^1.2.4", 15 | "gulp-rename": "^1.2.2", 16 | "gulp-uglify": "^1.5.3", 17 | "jshint": "^2.9.1" 18 | }, 19 | "license" : "MIT" 20 | } 21 | --------------------------------------------------------------------------------