欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 微信小程序学习用demo:日历:公历农历转换,calendar-convert

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:740

高端HTML5响应式企业通用网

2020-05-06   浏览:521

html5响应式外贸网站英文版

2020-05-08   浏览:510

HTML5自适应律师工作室类网

2020-04-04   浏览:504

HTML5影视传媒文化公司类网

2020-05-12   浏览:500

微信小程序学习用demo:日历:公历农历转换,calendar-convert

发布时间:2020-10-23  

 

挺好 

微信小程序学习用demo:日历:公历农历转换,calendar-convert

 

示例代码:

[AppleScript] 纯文本查看 复制代码

?

001

002

003

004

005

006

007

008

009

010

011

012

013

014

015

016

017

018

019

020

021

022

023

024

025

026

027

028

029

030

031

032

033

034

035

036

037

038

039

040

041

042

043

044

045

046

047

048

049

050

051

052

053

054

055

056

057

058

059

060

061

062

063

064

065

066

067

068

069

070

071

072

073

074

075

076

077

078

079

080

081

082

083

084

085

086

087

088

089

090

091

092

093

094

095

096

097

098

099

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

 

//morningf@foxmail.com

 

var ccFile = require('../../utils/calendar-converter.js')

var calendarConverter = new ccFile.CalendarConverter();

 

//月份天数表

var DAY_OF_MONTH = [

    [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],

    [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

];

 

//判断当前年是否闰年

var isLeapYear = function(year){

    if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))

        return 1

    else

        return 0

};

 

//获取当月有多少天

var getDayCount = function(year, month){

    return DAY_OF_MONTH[isLeapYear(year)][month];

};

 

//获取当前索引下是几号

var getDay = function(index) {

    return index - curDayOffset;

};

 

var pageData = {

    date: "",                //当前日期字符串

 

    //arr数据是与索引对应的数据信息

    arrIsShow: [],          //是否显示此日期

    arrDays: [],            //关于几号的信息

    arrInfoEx: [],          //农历节假日等扩展信息

    arrInfoExShow: [],      //处理后用于显示的扩展信息

 

    //选择一天时显示的信息

    detailData: {

        curDay: "",         //detail中显示的日信息

        curInfo1: "",

        curInfo2: "",

    }

    

}

 

//设置当前详细信息的索引,前台的详细信息会被更新

var setCurDetailIndex = function(index){

    var curEx = pageData.arrInfoEx[index];

    curDay = curEx.sDay - 1;

    pageData.detailData.curDay = curEx.sDay;

    pageData.detailData.curInfo1 = "农历" + curEx.lunarMonth + "月" + curEx.lunarDay;

    pageData.detailData.curInfo2 = curEx.cYear+curEx.lunarYear + "年 " + curEx.cMonth + "月 " + curEx.cDay + "日 " + curEx.lunarFestival;

}

 

//刷新全部数据

var refreshPageData = function(year, month, day){

    pageData.date = year+'年'+(month+1)+'月';

 

    var offset = new Date(year, month, 1).getDay();

 

    for (var i = 0; i < 42; ++i)

    {

        pageData.arrIsShow[i] = i < offset || i >= getDayCount(year, month) + offset ? false : true;

        pageData.arrDays[i] = i - offset + 1;

        var d = new Date(year, month, i - offset + 1);

        var dEx = calendarConverter.solar2lunar(d);

        pageData.arrInfoEx[i] = dEx;

        if ("" != dEx.lunarFestival)

        {

            pageData.arrInfoExShow[i] = dEx.lunarFestival;

        }

        else if ("初一" === dEx.lunarDay)

        {

            pageData.arrInfoExShow[i] = dEx.lunarMonth + "月";

        }

        else

        {

            pageData.arrInfoExShow[i] = dEx.lunarDay;

        }

    }

 

    setCurDetailIndex(offset + day);

};

 

var curDate = new Date();

var curMonth = curDate.getMonth();

var curYear = curDate.getFullYear();

var curDay = curDate.getDay();

refreshPageData(curYear, curMonth, curDay);

 

Page({

    data: pageData,

 

    onLoad: function(options){

        

    },

 

    goToday: function(e){

        curDate = new Date();

        curMonth = curDate.getMonth();

        curYear = curDate.getFullYear();

        curDay = curDate.getDay();

        refreshPageData(curYear, curMonth, curDay);

        this.setData(pageData);

    },

 

    goLastMonth: function(e){

        if (0 == curMonth)

        {

            curMonth = 11;

            --curYear

        }

        else

        {

            --curMonth;

        }

        refreshPageData(curYear, curMonth, 0);

        this.setData(pageData);

    },

 

    goNextMonth: function(e){

        if (11 == curMonth)

        {

            curMonth = 0;

            ++curYear

        }

        else

        {

            ++curMonth;

        }

        refreshPageData(curYear, curMonth, 0);

        this.setData(pageData);

    },

 

    selectDay: function(e){

        setCurDetailIndex(e.currentTarget.dataset.dayIndex);

        this.setData({

            detailData: pageData.detailData,

        })

    },

 

    bindDateChange: function(e){

        var arr = e.detail.value.split("-");

        refreshPageData(+arr[0], arr[1]-1, arr[2]-1);

        this.setData(pageData);

    },

});