找回密码
 立即注册

扫一扫,访问微社区

查看: 9405|回复: 8

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

  [复制链接]
发表于 2017-2-24 17:36:02 | 显示全部楼层 |阅读模式


undefined挺好


[mw_shl_code=html,true]//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 < offset || i >= getDayCount(year, month) + offset ? false : true;
        pageData.arrDays = i - offset + 1;
        var d = new Date(year, month, i - offset + 1);
        var dEx = calendarConverter.solar2lunar(d);
        pageData.arrInfoEx = dEx;
        if ("" != dEx.lunarFestival)
        {
            pageData.arrInfoExShow = dEx.lunarFestival;
        }
        else if ("初一" === dEx.lunarDay)
        {
            pageData.arrInfoExShow = dEx.lunarMonth + "月";
        }
        else
        {
            pageData.arrInfoExShow = 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);
    },
});[/mw_shl_code]


游客,如果您要查看本帖隐藏内容请回复

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

0

主题

18

回帖

123

金钱

新人求带

积分
0
发表于 2017-10-29 09:09:40 | 显示全部楼层
正需要下载来看看

0

主题

8

回帖

48

金钱

新人求带

积分
0
发表于 2017-11-5 10:13:14 | 显示全部楼层
不错,正好需要这样一个小程序

0

主题

1

回帖

12

金钱

新人求带

积分
0
发表于 2018-1-29 16:03:38 | 显示全部楼层
不错不错
回复

使用道具 举报

0

主题

1

回帖

12

金钱

新人求带

积分
0
发表于 2018-2-7 16:55:11 | 显示全部楼层
看起来不错,学习学习

0

主题

25

回帖

30

金钱

新人求带

积分
0
发表于 2018-5-30 11:54:11 | 显示全部楼层
多谢分享
回复

使用道具 举报

0

主题

10

回帖

98

金钱

新人求带

积分
0
发表于 2018-6-12 09:37:53 | 显示全部楼层
谢谢还有其他日历吗

0

主题

408

回帖

600

金钱

新人求带

积分
0
发表于 2020-4-8 14:13:09 | 显示全部楼层
我有流量,你有产品,我们就可以合作,有意的个人开发者朋友可以联系微信号jim20180688,详聊

0

主题

6

回帖

14

金钱

新人求带

积分
0
发表于 2021-7-2 12:55:57 | 显示全部楼层
jainkajnkj感谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|微信小程序开发|教程|文档|资源汇总_即速论坛 ( 粤ICP备14097199号-1  

GMT+8, 2024-3-29 22:48 , Processed in 0.114279 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表