vue移动端日历组件,
这篇文章主要为大家详细介绍了某视频剪辑软件实现垂直无限滑动日历组件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
用某视频剪辑软件做了一个垂直无限滑动日历,在这里记录一下实现。
效果
组件
verticalCalendar.vue
模板
div ref= container class= calendar-vt
div class=前一个月 {当前月}}月/div
ul ref= scroll class= scroll @ scroll= fnScroll
模板日期列表中的v-for=(项目,索引
李v-if= item。type=== month :key= index class= Li-month
{{ item.num }}月
/李
里
五-否则
:key=index
"李日"
:class=liDayClass(item.date)
@click=selectDate(item.date)
span class= date item。num } }/span
span class= lunar { item。日期获取农历日期} }/span
/李
/模板
/ul
/div
/模板
脚本
从" @/实用工具/日历"导入日历;
从"节流去抖"中导入{油门};
从" @/utils/moment.js "导入{格式化日期};
导出默认值{
名称:"垂直日历",
道具:{
当前日期:{
类型:日期,
默认值:()=新日期(),
},
},
data() {
返回{
日期列表:[],//日历列表
cellCount: 0,//日历个数
fnScroll: ()={},
当前月:0,
值:新日期(),//当前日历显示的中间日期
};
},
计算值:{
liDayClass() {
返回(日期)={
如果(
formatDate(this.currentDate, YYYY-MM-DD)==
格式日期(日期,"年-月-日")
) {
return [li-day , isto day ];
}否则{
返回李日;
}
};
},
},
过滤器:{
//农历
getLunarDate(日期){
让年份=日期。获取整年();
让月份=日期。getmonth()1;
让日=日期。getdate();
设农历=日历。太阳2号月球(年、月、日);
if (lunarCalendar.festival)返回农历。节日;
if (lunarCalendar.lunarFestival)返回农历。农历节日;
返回月亮日历.IDayCn
},
},
已创建(){
this.fnScroll=throttle(500,this。手柄滚动);
},
已安装(){
这个。价值=这个。当前日期;
这个. nextTick(()={
让高度=这个参考文献。集装箱。偏高;
这个。细胞计数=数学。楼层(高度/50);
//获取当年日历,从上一年的12-31至下一年1-1,防止滚动不到最顶或最底
这个。datelist=日历。getfullyeardate(
当前日期,
this.cellCount
);
//计算当前日期的位置
让index=this。约会列表。查找索引((项目)={
if (item.type===day) {
返回(
formatDate(this.currentDate, YYYY-MM-DD)==
formatDate(item.date," YYYY-MM-DD ")
);
}否则返回错误的
});
setTimeout(()={
//滚动到当前日期位置
这个参考文献。卷轴。scroll top=(索引-this。细胞计数/2)* 50;
这个。当月=本月。日期列表[索引]。约会。getmonth()1;
});
});
},
方法:{
手柄卷轴(e) {
//日历触顶,计算上一年日历
if (e.target.scrollTop===0) {
这个值=新日期(这个。价值。get full year()-1 /12/31 );
这个。datelist=日历。getfullyeardate(这个。值,这个。细胞计数);
这个. nextTick(()={
//滚动到上一年最底部
e。目标。scroll top=365 * 50
this.currentMonth=12
});
} else if(
数学。天花板(例如,目标。向上滚动)==
e .目标.滚动高度
) {
//日历触底,计算下一年日历
这个值=新日期(这个。价值。获取整年()1 /1/1 );
这个。datelist=日历。getfullyeardate(这个。值,这个。细胞计数);
这个. nextTick(()={
//滚动到下一年最顶部
e。目标。scroll top=5;
这个。当前月份=1;
});
}否则{
//更新当前显示第一个日期所属月份
设index=math。天花板(例如,目标。滚动top/50);
if (this.dateList[index].type===月)索引;
这个。当月=本月。日期列表[索引]。约会。getmonth()1;
}
},
选择日期(日期){
这个. emit(on-select ,date);
},
},
};
/脚本
样式lang=scss 范围。日历-vt {
宽度:60px
身高:100%;
位置:相对;前一个月{
高度:50px
显示器:flex
对齐-内容:居中;
对齐-项目:居中;
伸缩方向:列;
边框:1px纯色# ccc
光标:指针;
背景色:# 0474c7
颜色:# fff
字体大小:18px
}。滚动{
高度:calc(100%-50px);
溢出-y:自动;
滚动条宽度:无;/* Firefox */
-ms-溢出样式:无;/* IE 10 */
:-网络工具包-滚动条{
显示:无;
}。李月,李日{
高度:50px
显示器:flex
对齐-内容:居中;
对齐-项目:居中;
伸缩方向:列;
边框:1px纯色# ccc
光标:指针;
}。李月{
背景色:# 0474c7
颜色:# fff
字体大小:18px
}。李日{。日期{
字体大小:14px
}。月球
字体大小:10px
颜色:# 999;
}
}。今天{
背景色:# 50a3e6。日期,月球
颜色:# fff
}
}
}
}
/风格
工具类
calendar.js
/**
* @1900-2100区间内的公历、农历互转
* @字符集UTF-8
* @作者金孝珍杨(JJonline@JJonline .Cn)
* @Time 2014-7-21
* @Time 2016-8-13固定2033hex、归属编年史
* @时间2016-9-25修复农历闰月参数错误
* @时间2017-7-24固定使用getTerm Func参数错误。使用太阳年,而不是阴历年
* @版本1.0.3
* @公历转农历:calendar.solar2lunar(1987,11,01);//[可以忽略前缀为0的参数]
* @农历转公历:calendar.lunar2solar(1987,09,10);//[可以忽略前缀为0的参数]
*/
常数日历={
/**
* 农历1900-2100的润大小信息表
* @属性数组
* @返回十六进制
*/
lunarInfo: [0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,//1900-1909
0x04ae0、0x0a5b6、0x0a4d0、0x0d250、0x1d255、0x0b540、0x0d6a0、0x0ada2、0x095b0、0x14977 、//1910-1919
0x04970、0x0a4b0、0x0b4b5、0x06a50、0x06d40、0x1ab54、0x02b60、0x09570、0x052f2、0x04970 、//1920-1929
0x06566,0x0d4a0,0x0ea50,0x16a95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950,//1930-1939
0x0d4a0、0x1d8a6、0x0b550、0x056a0、0x1a5b4、0x025d0、0x092d0、0x0d2b2、0x0a950、0x0b557 、//1940-1949
0x06ca0,0x0b550,0x15355,0x04da0,0x0a5b0,0x14573,0x052b0,0x0a9a8,0x0e950,0x06aa0,//1950-1959
0x0aea6、0x0ab50、0x04b60、0x0aae4、0x0a570、0x05260、0x0f263、0x0d950、0x05b57、0x056a0 、//1960-1969
0x096d0、0x04dd5、0x04ad0、0x0a4d0、0x0d4d4、0x0d250、0x0d558、0x0b540、0x0b6a0、0x195a6 、//1970-1979
0x095b0、0x049b0、0x0a974、0x0a4b0、0x0b27a、0x06a50、0x06d40、0x0af46、0x0ab60、0x09570 、//1980-1989
0x04af5、0x04970、0x064b0、0x074a3、0x0ea50、0x06b58、0x05ac0、0x0ab60、0x096d5、0x092e0 、//1990-1999年
0x0c960、0x0d954、0x0d4a0、0x0da50、0x07552、0x056a0、0x0abb7、0x025d0、0x092d0、0x0cab5 、//2000-2009
0x0a950、0x0b4a0、0x0baa4、0x0ad50、0x055d9、0x04ba0、0x0a5b0、0x15176、0x052b0、0x0a930 、//2010-2019
0x07954、0x06aa0、0x0ad50、0x05b52、0x04b60、0x0a6e6、0x0a4e0、0x0d260、0x0ea65、0x0d530 、//2020-2029
0x05aa0,0x076a3,0x096d0,0x04afb,0x04ad0,0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45,//2030-2039
0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0,//2040-2049
/* *由JJonline@JJonline添加100 . Cn * */
0x14b63、0x09370、0x049f8、0x04970、0x064b0、0x168a6、0x0ea50、0x06b20、0x1a6c4、0x0aae0 、//2050-2059
0x092e0、0x0d2e3、0x0c960、0x0d557、0x0d4a0、0x0da50、0x05d55、0x056a0、0x0a6d0、0x055d4 、//2060-2069
0x052d0、0x0a9b8、0x0a950、0x0b4a0、0x0b6a6、0x0ad50、0x055a0、0x0aba4、0x0a5b0、0x052b0 、//2070-2079
0x0b273、0x06930、0x07337、0x06aa0、0x0ad50、0x14b55、0x04b60、0x0a570、0x054e4、0x0d160 、//2080-2089
0x0e968、0x0d520、0x0daa0、0x16aa6、0x056d0、0x04ae0、0x0a9d4、0x0a2d0、0x0d150、0x0f252 、//2090-2099
0x0d520],//2100
/**
* 公历每个月份的天数普通表
* @属性数组
* @退货数量
*/
太阳月:[31,28,31,30,31,30,31,31,30,31,31,30,30,31],
/**
* *
* @属性数组@
* @返回Cn字符串
*/
甘:[\u7532 、 \ U4和59 、 \ U4和19 、 \ U4和01 、 \u620a 、 \u5df1 、 \u5和9a 、 u8f9b 、 u58ec 、 u7678],
/**
* *
* @属性数组
*]
* @返回Cn字符串
*/
志:[\u5b50 , \u4e11 , \u5bc5 , \u536f , \u8fb0 , \u5df3 , \u5348 , \u672a , \u7533 , \u9149 , \u620c , \ u4e 5 ],
/**
* *
* @属性数组
*]
* @返回Cn字符串
*/
动物:[\u9f20 , \u725b , \u864e , \u5154 , \u9f99 , \u86c7 , \u9a6c , \u7f8a , \u7334 , \u9e21 , \u72d7 , \u732a],
/**
* *
*/
节日:>
1-1:{ title:5734},
5-1:{标题:5734},
5-4:{ title:5734},
6-1:{标题:5734},
9-10:{ title:5734},
10-1:{ title:5734},
12-25:{ title:574},
},
/**
* *
*/
lfs值:>
12-30 :{ title:5734},
1-1:{ title:5734},
1-15:{ title:5734},
5-5:{ title:5734},
8-15岁:{ title:5734},
},
/**
* *
*/
getFestival()
还给这个。节日
},
/**
* *
*/
getunarformastival()
返回此。lfsummer
},
/**
*
* @param {对象}
*/
setfestival(param={ }){ }
这个。节日=停止
},
/**
*
* @param {对象}
*/
setlunrformastival(param={ }){ }
这个。lfestival=停止
},
/**
* *
* @属性数组
*]
* @返回Cn字符串
*/
solarinterm:[。 u5c0f \ u5bd 2 , u5927\u5bd2 , u7acb \ u6655 , \u96和8\u6c34 , \u60ca\u86f0 , \u6625\u5206 , \u6e05\u660e , \ u8c 37 \ u96和8 , \u7acb\u590f , \u5c0f\u
/**
* *
* @属性数组
* @为拼接返回0x字符串
*/
转译:[ 97787397 BD 097 c 36b 6 fc 9274 c 91 aa , 97b6b97bd19801ec9210c965cc920e , 97bcf97c3598082c95f8c965cc920f ,
97bd 0 b 06 BDB 0722 c 965 ce 1 CFC 920 f , b 027097 BD 097 c 36b 6 fc 9274 c 91 aa , 97b6b 97 BD 1980 EC 9210 c 965 cc 920 e ,
97bcf97c359801ec95f8c965cc920f , 97 bd 0 b 06 bdb 0722 c 965 ce 1 cfcc 920 f , b 02797 BD 097 c 36b 6 fc 9274 c 91 aa ,
97b6b97bd19801ec9210c965cc920e , 97bcf97c359801ec95f8c965cc920f , 97 bd 0 b 06 bdb 0722 c 965 ce 1 cfcc 920 f ,
b027097bd097c36b0b6fc9274c91aa , 9778397 bd 19801 ec 9210 c 965 cc 920 e , 97 b6b 97 BD 1980 EC 95 F8 c 965 cc 920 f ,
97bd 09801d 98082 c 95 F8 e 1 CFC 920 f , 97 BD 097 BD 097 c 36b 0 fc 9210 c 8 DC 2 , 97787397 BD 197 c 36c 9210 c 9274 c 91 aa ,
97b6b97bd19801ec95f8c965cc920e , 97 BD 09801d 98082 c95 F8 e 1 CFC 920 f , 97 BD 097 BD 097 c 36b 6 fc 9210 c 8 dc2 ,
97787397 BD 097 c 36 c 9210 c 9274 c 91 aa , 97b 6 b 97 BD 1980 EC 95 F8 c 965 cc 920 e , 97 BCF 97 c 3598082 c 95 F8 e 1 CFC 920 f ,
97bd 097 BD 097 c 36b 6 fc 9210 c 8 DC 2 , 9778397bd097c36c9210c9274c91aa , 97b6b 97 BD 1980 EC 9210 c 965 cc 920 e ",
97bcf97c3598082c95f8c965cc920f , 97 BD 097 BD 097 c 35b 6 fc 920 FB 0722 , 97787397 BD 097 c 36b 6 fc 9274 c 91 aa ,
97b6b97bd19801ec9210c965cc920e , 97bcf97c3598082c95f8c965cc920f , 97bd097bd097c35b0b6fc920fb0722 ,
97787397 BD 097 c 36b 6 fc 9274 c 91 aa , 97b6b 97 BD 1980 EC 9210 c 965 cc 920 e , 97bcf97c359801ec95f8c965cc920f ",
97bd 097 BD 097 c35 b26 fc 920 FB 0722 , 97787 BD 097 c 36b 6 fc 9274 c91 aa , 97b6b97bd19801ec9210c965cc920e ",
97bcf97c359801ec95f8c965cc920f , 97 BD 097 BD 097 c 35b 6 fc 920 FB 0722 , 97787397 BD 097 c 36b 6 fc 9274 c 91 aa ,
97b6b97bd19801ec9210c965cc920e , 97bcf97c359801ec95f8c965cc920f , 97bd097bd07f595b0b6fc920fb0722 ,
97787397 BD 097 c 36b 6 fc 9210 c 8 DC 2 , 9778397 bd 19801 ec 9210 c 9274 c 920 e , 97b6 b97 BD 1980 EC 95 F8 c 965 cc 920 f ,
97bd07f5307f595b0b0bc920fb0722 , 7f 0 e 397 BD 097 c 36b 0 fc 9210 c 8 dc2 , 97787397 BD 097 c 36c 9210 c 9274 c 920 e ,
97b6b97bd19801ec95f8c965cc920f , 97bd07f5307f595b0b0bc920fb0722 , 7f 0 e 397 BD 097 c 36b 6 fc 9210 c8 dc2 ,
97787397 BD 097 c 36 c 9210 c 9274 c 91 aa , 97b6b 97 BD 1980 EC 9210 c 965 cc 920 e , 97 bd 07 f 1487 f 595 b 0 b 0 bc 920 fb 0722 ,
7f0e397bd097c36b0b6fc9210c8dc2 , 97787397 BD 097 c 36 B0 fc 9274 c 91 aa , 97b6b97bd19801ec9210c965cc920e ",
97 BCF 7f 1487 f 595 b 0 B0 bb 6fb 0722 , 7f 0 e 397 BD 097 c 35b 6 fc 920 FB 0722 , 97778397 BD 097 c 36b 6 fc 9274 c 91 aa ,
97b6b97bd19801ec9210c965cc920e , 97 BCF 7f 1487 f 595 b 0 B0 bb 6fb 0722 , 7f 0 e 397 BD 097 c 35b 6 fc 920 FB 0722 ,
97787397 BD 097 c 36b 6 fc 9274 c 91 aa , 97b6b 97 BD 1980 EC 9210 c 965 cc 920 e , 97 BCF 7f 1487 f 531 b 0 bb 0 b 6 FB 0722 ,
7f0e 397 BD 097 c35b 6 fc 920 FB 0722 , 97787 BD 097 c 36b 6fc 9274 c 91 aa , 97b6b 97 BD 1980 EC 9210 c 965 cc 920 e ,
97 BCF 7f 1487 f 531 b 0 B0 bb 6fb 0722 , 7f0e397bd07f595b0b6fc920fb0722 , 97778397 BD 097 c 36b 6 fc 9274 c 91 aa ,
97b6b97bd19801ec9210c9274c920e , 97 BCF 7f 0 e 47 f 531 B0 bb 6fb 0722 , 7f 0 e 397 BD 07 f 595 b 0 BC 920 FB 0722 ,
97787397 BD 097 c 36 B0 b 6 fc 9210 c 91 aa , 97b6b97bd197c36c9210c9274c920e , 97 bcf 7 f 0 e 47 f 531 b 0 b 0 bb 0 b 6 fb 0722 ,
7f0e397bd07f595b0b0bc920fb0722 , 9778397 bd 097 c 36 c 9210 c 9274 , 97778397 BD 097 c 36c 9210 c 9274 c 920 e ,
97b6b7f0e47f531b0723b0b6fb0722 , 7f 0 e 37 f 5307 f 595 b 0 BC 920 FB 0722 , 7f 0 e 397 BD 097 c 36b 6 fc 9210 c 8 DC 2 ,
97787397 BD 097 c 36 B0 b70 c 9274 c 91 aa , 97b6b7f0e47f531b0723b0b6fb0721 , 7f 0 e 37 f 1487 f 595 b 0 bb 0 b 6 FB 0722 ,
7f0e397bd097c35b0b6fc9210c8dc2 , 97787397 BD 097 b26 fc 9274 c91 aa , 97b6b 7f0 e 47f 531 b 0723 b26 FB 0721 ,
7f0e 27f 1487 f 595 B0 B0 bb 6fb 0722 , 7f0e397bd097c35b0b6fc920fb0722 , 97778397 BD 097 c 36b 6fc 9274 c 91 aa ,
97b6b7f0e47f531b0723b0b6fb0721 , 7f 0 e 27 f 1487 f 531 b 0 bb 0 b 6 FB 0722 , 7f0e397bd097c35b0b6fc920fb0722 ,
97787397 BD 097 c 36b 6 fc 9274 c 91 aa , 97b6b7f0e47f531b0723b0b6fb0721 , 7f 0 e 27 f 1487 f 531 b 0 bb 0 b 6 FB 0722 ,
7f0e 397 BD 097 c35b 6 fc 920 FB 0722 , 9778397 BD 097 c 36b 6 fc 9274 c 91 aa , 97b6b7f0e47f531b0723b0b6fb0721 ,
7f0e 27f 1487 f 531 B0 B0 bb 6fb 0722 , 7f0e397bd07f595b0b0bc920fb0722 , 97778397 BD 097 c 36b 6fc 9274 c 91 aa ,
97b6b7f0e47f531b0723b0787b0721 , 7f 0 e 27 f 0 e 47 f 531 b 0 bb 0 b 6 FB 0722 , 7f 0 e 397 BD 07 f 595 b 0 BC 920 FB 0722 ,
97787397 BD 097 c 36b 6 fc 9210 c 91 aa , 97b6b7f0e47f149b0723b0787b0721 , 7f0e27f0e47f531b0723b0b6fb0722 ,
7f0e397bd07f595b0b0bc920fb0722 , 97787397 BD 097 c 36b 6 fc 9210 c 8 dc2 , 977837f0e37f149b0723b0787b0721 ,
7f07e7f0e47f531b0723b0b6fb0722 , 7f 0 e 37 f 5307 f 595 b 0 BC 920 FB 0722 , 7f 0 e 397 BD 097 c 35b 6 fc 9210 c 8 DC 2 ,
977837f0e37f14998082b0787b0721 , 7f07e7f0e47f531b0723b0b6fb0721 , 7f 0 e 37 f 1487 f 595 b 0 b 0 bb 6 FB 0722 ,
7f0e 397 BD 097 c35b 6 fc 9210 c8 dc2 , 977837f0e37f14998082b0787b06bd , 7f07e7f0e47f531b0723b0b6fb0721 ,
7f0e 27f 1487 f 531 B0 B0 bb 6fb 0722 , 7f0e397bd097c35b0b6fc920fb0722 , 977837f0e37f14998082b0787b06bd ,
7f07e7f0e47f531b0723b0b6fb0721 , 7f 0 e 27 f 1487 f 531 b 0 bb 0 b 6 FB 0722 , 7f0e397bd097c35b0b6fc920fb0722 ,
977837f0e37f14998082b0787b06bd , 7f07e7f0e47f531b0723b0b6fb0721 , 7f 0 e 27 f 1487 f 531 b 0 b 0 bb 6 FB 0722 ,
7f0e397bd07f595b0b0bc920fb0722 , 977837f0e37f14998082b0787b06bd , 7f07e7f0e47f531b0723b0b6fb0721 ,
7f0e 27f 1487 f 531 B0 B0 bb 6fb 0722 , 7f0e397bd07f595b0b0bc920fb0722 , 977837f0e37f14998082b0787b06bd ,
7f07e7f0e47f149b0723b0787b0721 , 7f 0 e 27 f 0 e 47 f 531 b 0 bb 0 b 6 FB 0722 , 7f 0 e 397 BD 07 f 595 b 0 BC 920 FB 0722 ,
977837f0e37f14998082b0723b06bd , 7f07e7f0e37f149b0723b0787b0721 , 7 f 0e 27 f 0e 47 f 531 b 0723 b 06 FB 0722 ,
7f0e397bd07f595b0b0bc920fb0722 , 977837f0e37f14898082b0723b02d5 , 7ec967f0e37f14998082b0787b0721 ,
7f07e7f0e47f531b0723b0b6fb0722 , 7f0e37f1487f595b0b0bb0b6fb0722 , 7f0e37f0e37f14898082b0723b02d5 ,
7ec967f0e37f14998082b0787b0721 , 7f07e7f0e47f531b0723b0b6fb0722 , 7 f 0e 37 f 1487 f 531 b 0 bb 0 b 6 FB 0722 ,
7f0e37f0e37f14898082b0723b02d5 , 7ec967f0e37f14998082b0787b06bd , 7 f 07 e 7 f 0e 47 f 531 b 0723 b 06 FB 0721 ,
7f0e37f1487f531b0b0bb0b6fb0722 , 7f0e37f0e37f14898082b072297c35 , 7ec967f0e37f14998082b0787b06bd ,
7f07e7f0e47f531b0723b0b6fb0721 , 7f0e27f1487f531b0b0bb0b6fb0722 , 7f0e37f0e37f14898082b072297c35 ,
7ec967f0e37f14998082b0787b06bd , 7f07e7f0e47f531b0723b0b6fb0721 , 7 f 0e 27 f 1487 f 531 b 0 bb 0 b 6 FB 0722 ,
7f0e37f0e366aa89801eb072297c35 , 7ec967f0e37f14998082b0787b06bd , 7f07e7f0e47f149b0723b0787b0721 ,
7f0e27f1487f531b0b0bb0b6fb0722 , 7f0e37f0e366aa89801eb072297c35 , 7ec967f0e37f14998082b0723b06bd ,
7f07e7f0e47f149b0723b0787b0721 , 7 f 0e 27 f 0e 47 f 531 b 0723 b 06 FB 0722 , 7f0e37f0e366aa89801eb072297c35 ,
7ec967f0e37f14998082b0723b06bd , 7f07e7f0e37f14998083b0787b0721 , 7 f 0e 27 f 0e 47 f 531 b 0723 b 06 FB 0722 ,
7f0e37f0e366aa89801eb072297c35 , 7ec967f0e37f14898082b0723b02d5 , 7f07e7f0e37f14998082b0787b0721 ,
7f07e7f0e47f531b0723b0b6fb0722 , 7f0e36665b66aa89801e9808297c35 , 665f67f0e37f14898082b0723b02d5 ,
7ec967f0e37f14998082b0787b0721 , 7f07e7f0e47f531b0723b0b6fb0722 , 7f0e36665b66a449801e9808297c35 ,
665f67f0e37f14898082b0723b02d5 , 7ec967f0e37f14998082b0787b06bd , 7 f 07 e 7 f 0e 47 f 531 b 0723 b 06 FB 0721 ,
7f0e36665b66a449801e9808297c35 , 665f67f0e37f14898082b072297c35 , 7ec967f0e37f14998082b0787b06bd ,
7f07e7f0e47f531b0723b0b6fb0721 , 7f0e26665b66a449801e9808297c35 , 665f67f0e37f1489801eb072297c35 ,
7ec967f0e37f14998082b0787b06bd , 7f07e7f0e47f531b0723b0b6fb0721 , 7 f 0e 27 f 1487 f 531 b 0 bb 0 b 6 FB 0722 ],
/**
* 数字转中文速查表
* @属性数组
* @trans [日,一,二,三,四,五,六,七,八,九,十]
* @返回通信网络(Communicating Net的缩写)字符串
*/
nStr1: [\u65e5 , \u4e00 , \u4e8c , \u4e09 , \u56db , \u4e94 , \u516d , \u4e03 , \u516b , \u4e5d , \u5341],
/**
* 日期转农历称呼速查表
* @属性数组
* @trans [初,十,廿,卅]
* @返回通信网络(Communicating Net的缩写)字符串
*/
nStr2: [\u521d , \u5341 , \u5eff , \u5345],
/**
* 月份转农历称呼速查表
* @属性数组
* @trans [正,一,二,三,四,五,六,七,八,九,十,冬,腊]
* @返回通信网络(Communicating Net的缩写)字符串
*/
nStr3: [\u6b63 , \u4e8c , \u4e09 , \u56db , \u4e94 , \u516d , \u4e03 , \u516b , \u4e5d , \u5341 , \u51ac , \u814a],
/**
* 返回农历y年一整年的总天数
* @param农历年
* @退货数量
* @ eg:var count=日历。《岁月》(1987);//count=387
*/
lYearDays:函数(y) {
var i,sum=348
for(I=0x 8000;i0x8I=1){ sum=(这个。月球信息[y-1900]I)?1 : 0;}
返回(求和此。闰日(y));
},
/**
* 返回农历y年闰月是哪个月;若y年没有闰月则返回0
* @param农历年
* @返回号码(0-12)
* @ eg:var闰月=日历。闰月(1987);//leapMonth=6
*/
leap月:函数(y) { //闰字编码\u95f0
返回(这个。月球信息[y-1900]0xf);
},
/**
* 返回农历y年闰月的天数若该年没有闰月则返回0
* @param农历年
* @返回数字(0、29、30)
* @ eg:var闰月日=日历。闰日(1987);//leapMonthDay=29
*/
学习天数:函数(y) {
if (this.leapMonth(y)) {
返回((这个。月球信息[y-1900]0x 10000)?30 : 29);
}
return(0);
},
/**
* 返回农历y年m月(非闰月)的总天数,计算m为闰月时的天数请使用leapDays方法
* @param农历年
* @返回数字(-1、29、30)
* @ eg:var月日=日历。月天(1987,9);//MonthDay=29
*/
monthDays: function (y,m) {
if (m 12 m 1) { return -1 }//月份参数从一至12,参数错误返回-1
返回((这个。月球信息[y-1900](0x 10000m)?30 : 29);
},
/**
* 返回公历(!)y年m月的天数
* @param太阳年
* @返回数字(-1、28、29、30、31)
* @ eg:var solar monthday=calendar。闰日(1987);//solarMonthDay
=30
*/
solarDays: function (y, m) {
if (m > 12 m < 1) { return -1 } //若参数错误 返回-1
var ms = m - 1;
if (ms == 1) { //2月份的闰平规律测算后确认返回28或29
return (((y % 4 == 0) && (y % 100 != 0) (y % 400 == 0)) ? 29 : 28);
} else {
return (this.solarMonth[ms]);
}
},
/**
* 农历年份转换为干支纪年
* @param lYear 农历年的年份数
* @return Cn string
*/
toGanZhiYear: function (lYear) {
var ganKey = (lYear - 3) % 10;
var zhiKey = (lYear - 3) % 12;
if (ganKey == 0) ganKey = 10;//如果余数为0则为最后一个天干
if (zhiKey == 0) zhiKey = 12;//如果余数为0则为最后一个地支
return this.Gan[ganKey - 1] + this.Zhi[zhiKey - 1];
},
/**
* 公历月、日判断所属星座
* @param cMonth [description]
* @param cDay [description]
* @return Cn string
*/
toAstro: function (cMonth, cDay) {
var s = "\u9b54\u7faf\u6c34\u74f6\u53cc\u9c7c\u767d\u7f8a\u91d1\u725b\u53cc\u5b50\u5de8\u87f9\u72ee\u5b50\u5904\u5973\u5929\u79e4\u5929\u874e\u5c04\u624b\u9b54\u7faf";
var arr = [20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22];
return s.substr(cMonth * 2 - (cDay < arr[cMonth - 1] ? 2 : 0), 2) + "\u5ea7";//座
},
/**
* 传入offset偏移量返回干支
* @param offset 相对甲子的偏移量
* @return Cn string
*/
toGanZhi: function (offset) {
return this.Gan[offset % 10] + this.Zhi[offset % 12];
},
/**
* 传入公历(!)y年获得该年第n个节气的公历日期
* @param y公历年(1900-2100);n二十四节气中的第几个节气(1~24);从n=1(小寒)算起
* @return day Number
* @eg:var _24 = calendar.getTerm(1987,3) ;//_24=4;意即1987年2月4日立春
*/
getTerm: function (y, n) {
if (y < 1900 y > 2100) { return -1; }
if (n < 1 n > 24) { return -1; }
var _table = this.sTermInfo[y - 1900];
var _info = [
parseInt(0x + _table.substr(0, 5)).toString(),
parseInt(0x + _table.substr(5, 5)).toString(),
parseInt(0x + _table.substr(10, 5)).toString(),
parseInt(0x + _table.substr(15, 5)).toString(),
parseInt(0x + _table.substr(20, 5)).toString(),
parseInt(0x + _table.substr(25, 5)).toString()
];
var _calday = [
_info[0].substr(0, 1),
_info[0].substr(1, 2),
_info[0].substr(3, 1),
_info[0].substr(4, 2),
_info[1].substr(0, 1),
_info[1].substr(1, 2),
_info[1].substr(3, 1),
_info[1].substr(4, 2),
_info[2].substr(0, 1),
_info[2].substr(1, 2),
_info[2].substr(3, 1),
_info[2].substr(4, 2),
_info[3].substr(0, 1),
_info[3].substr(1, 2),
_info[3].substr(3, 1),
_info[3].substr(4, 2),
_info[4].substr(0, 1),
_info[4].substr(1, 2),
_info[4].substr(3, 1),
_info[4].substr(4, 2),
_info[5].substr(0, 1),
_info[5].substr(1, 2),
_info[5].substr(3, 1),
_info[5].substr(4, 2),
];
return parseInt(_calday[n - 1]);
},
/**
* 传入农历数字月份返回汉语通俗表示法
* @param lunar month
* @return Cn string
* @eg:var cnMonth = calendar.toChinaMonth(12) ;//cnMonth=腊月
*/
toChinaMonth: function (m) { // 月 => \u6708
if (m > 12 m < 1) { return -1 } //若参数错误 返回-1
var s = this.nStr3[m - 1];
s += "\u6708";//加上月字
return s;
},
/**
* 传入农历日期数字返回汉字表示法
* @param lunar day
* @return Cn string
* @eg:var cnDay = calendar.toChinaDay(21) ;//cnMonth=廿一
*/
toChinaDay: function (d) { //日 => \u65e5
var s;
switch (d) {
case 10:
s = \u521d\u5341; break;
case 20:
s = \u4e8c\u5341; break;
break;
case 30:
s = \u4e09\u5341; break;
break;
default:
s = this.nStr2[Math.floor(d / 10)];
s += this.nStr1[d % 10];
}
return (s);
},
/**
* 年份转生肖[!仅能大致转换] => 精确划分生肖分界线是“立春”
* @param y year
* @return Cn string
* @eg:var animal = calendar.getAnimal(1987) ;//animal=兔
*/
getAnimal: function (y) {
return this.Animals[(y - 4) % 12]
},
/**
* @param {String} date
* @returns {Boolean}
*/
isSolarPublicHoliday: function (date) {
// 阳历:元旦、劳动节、国庆
let solarArr = ["1-1", "1-2", "1-3", "5-1", "10-1", "10-2", "10-3"];
return solarArr.indexOf(date) != -1;
},
isLunarPublicHoliday: function (date) {
// 阴历:春节、清明、端午节、中秋节
let lunarArr = ["1-1", "1-2", "1-3", "2-23", "5-5", "8-15"];
return lunarArr.indexOf(date) != -1;
},
isFestival(slotDate, slotData) {
// slotDate是标准时间
// slotData是对象
let solarDayArr = slotData.day.split("-");
let lunarDay = calendar.solar2lunar(
solarDayArr[0],
solarDayArr[1],
solarDayArr[2]
);
// 公历节日\农历节日\农历节气
let festAndTerm = [];
festAndTerm.push(
lunarDay.festival == null ? "" : " " + lunarDay.festival
);
festAndTerm.push(
lunarDay.lunarFestival == null ? "" : "" + lunarDay.lunarFestival
);
festAndTerm.push(lunarDay.Term == null ? "" : "" + lunarDay.Term);
festAndTerm = festAndTerm.join("");
// 原本的方。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。