必威体育Betway必威体育官网
当前位置:首页 > IT技术

JS 农历日历

时间:2019-08-14 04:39:59来源:IT技术作者:seo实验室小编阅读:79次「手机版」
 

农历日历

<mce:script language="javaScript"><!--
        function RunGLNL() {
            var today = new Date();
            var d = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");
            var DDDD = (today.getYear() < 100 ? today.getYear() + 1900 : today.getYear()) + "年" + (today.getmonth() + 1) + "月" + today.getDate() + "日";
            DDDD = DDDD + " " + d[today.getDay()];
            DDDD = DDDD + " " + (CnDateofDateStr(today));
            //DDDD = DDDD+ " " + SolarTerm(today);
            document.write(DDDD);
        }
        function DaysNumberofDate(DateGL) {
            return parseInt((Date.parse(DateGL) - Date.parse(DateGL.getYear() + "/1/1")) / 86400000) + 1;
        }
        function CnDateofDate(DateGL) {
            var CnData = new Array(
0x16, 0x2a, 0xda, 0x00, 0x83, 0x49, 0xb6, 0x05, 0x0e, 0x64, 0xbb, 0x00, 0x19, 0xb2, 0x5b, 0x00,
0x87, 0x6a, 0x57, 0x04, 0x12, 0x75, 0x2b, 0x00, 0x1d, 0xb6, 0x95, 0x00, 0x8a, 0xad, 0x55, 0x02,
0x15, 0x55, 0xaa, 0x00, 0x82, 0x55, 0x6c, 0x07, 0x0d, 0xc9, 0x76, 0x00, 0x17, 0x64, 0xb7, 0x00,
0x86, 0xe4, 0xae, 0x05, 0x11, 0xea, 0x56, 0x00, 0x1b, 0x6d, 0x2a, 0x00, 0x88, 0x5a, 0xaa, 0x04,
0x14, 0xad, 0x55, 0x00, 0x81, 0xaa, 0xd5, 0x09, 0x0b, 0x52, 0xea, 0x00, 0x16, 0xa9, 0x6d, 0x00,
0x84, 0xa9, 0x5d, 0x06, 0x0f, 0xd4, 0xae, 0x00, 0x1a, 0xea, 0x4d, 0x00, 0x87, 0xba, 0x55, 0x04
);
            var CnMonth = new Array();
            var CnMonthDays = new Array();
            var CnBeginDay;
            var LeapMonth;
            var Bytes = new Array();
            var I;
            var CnMonthData;
            var DaysCount;
            var CnDaysCount;
            var ResultMonth;
            var ResultDay;
            var yyyy = DateGL.getYear();
            var mm = DateGL.getMonth() + 1;
            var dd = DateGL.getDate();
            if (yyyy < 100) yyyy += 1900;
            if ((yyyy < 1997) || (yyyy > 2020)) {
                return 0;
            }
            Bytes[0] = CnData[(yyyy - 1997) * 4];
            Bytes[1] = CnData[(yyyy - 1997) * 4 + 1];
            Bytes[2] = CnData[(yyyy - 1997) * 4 + 2];
            Bytes[3] = CnData[(yyyy - 1997) * 4 + 3];
            if ((Bytes[0] & 0x80) != 0) { CnMonth[0] = 12; }
            else { CnMonth[0] = 11; }
            CnBeginDay = (Bytes[0] & 0x7f);
            CnMonthData = Bytes[1];
            CnMonthData = CnMonthData << 8;
            CnMonthData = CnMonthData | Bytes[2];
            LeapMonth = Bytes[3];
            for (I = 15; I >= 0; I--) {
                CnMonthDays[15 - I] = 29;
                if (((1 << I) & CnMonthData) != 0) {
                    CnMonthDays[15 - I]++;
                }
                if (CnMonth[15 - I] == LeapMonth) {
                    CnMonth[15 - I + 1] = -LeapMonth;
                }
                else {
                    if (CnMonth[15 - I] < 0) { CnMonth[15 - I + 1] = -CnMonth[15 - I] + 1; }
                    else { CnMonth[15 - I + 1] = CnMonth[15 - I] + 1; }
                    if (CnMonth[15 - I + 1] > 12) { CnMonth[15 - I + 1] = 1; }
                }
            }
            DaysCount = DaysNumberofDate(DateGL) - 1;
            if (DaysCount <= (CnMonthDays[0] - CnBeginDay)) {
                if ((yyyy > 1901) && (CnDateofDate(new Date((yyyy - 1) + "/12/31")) < 0)) {
                    ResultMonth = -CnMonth[0];
                }
                else { ResultMonth = CnMonth[0]; }
                ResultDay = CnBeginDay + DaysCount;
            }
            else {
                CnDaysCount = CnMonthDays[0] - CnBeginDay;
                I = 1;
                while ((CnDaysCount < DaysCount) && (CnDaysCount + CnMonthDays[I] < DaysCount)) {
                    CnDaysCount += CnMonthDays[I];
                    I++;
                }
                ResultMonth = CnMonth[I];
                ResultDay = DaysCount - CnDaysCount;
            }
            if (ResultMonth > 0) {
                return ResultMonth * 100 + ResultDay;
            }
            else { return ResultMonth * 100 - ResultDay; }
        }
        function CnYearofDate(DateGL) {
            var YYYY = DateGL.getYear();
            var MM = DateGL.getMonth() + 1;
            var CnMM = parseInt(Math.abs(CnDateofDate(DateGL)) / 100);
            if (YYYY < 100) YYYY += 1900;
            if (CnMM > MM) YYYY--;
            YYYY -= 1864;
            return CnEra(YYYY) + "年";
        }
        function CnMonthofDate(DateGL) {
            var CnMonthStr = new Array("零", "正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "冬", "腊");
            var Month;
            Month = parseInt(CnDateofDate(DateGL) / 100);
            if (Month < 0) { return "闰" + CnMonthStr[-Month] + "月"; }
            else { return CnMonthStr[Month] + "月"; }
        }
        function CnDayofDate(DateGL) {
            var CnDayStr = new Array("零",
    "初一", "初二", "初三", "初四", "初五",
    "初六", "初七", "初八", "初九", "初十",
    "十一", "十二", "十三", "十四", "十五",
    "十六", "十七", "十八", "十九", "二十",
    "廿一", "廿二", "廿三", "廿四", "廿五",
    "廿六", "廿七", "廿八", "廿九", "三十");
            var Day;
            Day = (Math.abs(CnDateofDate(DateGL))) % 100;
            return CnDayStr[Day];
        }
        function DaysNumberofMonth(DateGL) {
            var MM1 = DateGL.getYear();
            MM1 < 100 ? MM1 += 1900 : MM1;
            var MM2 = MM1;
            MM1 += "/" + (DateGL.getMonth() + 1);
            MM2 += "/" + (DateGL.getMonth() + 2);
            MM1 += "/1";
            MM2 += "/1";
            return parseInt((Date.parse(MM2) - Date.parse(MM1)) / 86400000);
        }
        function CnEra(YYYY) {
            var Tiangan = new Array("甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸");
            //var Dizhi=new Array("子(鼠)","丑(牛)","寅(虎)","卯(兔)","辰(龙)","巳(蛇)",
            //"午(马)","未(羊)","申(猴)","酉(鸡)","戌(狗)","亥(猪)");
            var Dizhi = new Array("子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥");
            return Tiangan[YYYY % 10] + Dizhi[YYYY % 12];
        }
        function CnDateofDateStr(DateGL) {
            if (CnMonthofDate(DateGL) == "零月") return " 请调整您的计算机日期!";
            else return "农历" + CnYearofDate(DateGL) + " " + CnMonthofDate(DateGL) + CnDayofDate(DateGL);
        }
        function SolarTerm(DateGL) {
            var SolarTermStr = new Array(
        "小寒", "大寒", "立春", "雨水", "惊蛰", "春分",
        "清明", "谷雨", "立夏", "小满", "芒种", "夏至",
        "小暑", "大暑", "立秋", "处暑", "白露", "秋分",
        "寒露", "霜降", "立冬", "小雪", "大雪", "冬至");
            var DifferenceInMonth = new Array(
        1272060, 1275495, 1281180, 1289445, 1299225, 1310355,
        1321560, 1333035, 1342770, 1350855, 1356420, 1359045,
        1358580, 1355055, 1348695, 1340040, 1329630, 1318455,
        1306935, 1297380, 1286865, 1277730, 1274550, 1271556);
            var DifferenceInYear = 31556926;
            var BeginTime = new Date(1901 / 1 / 1);
            BeginTime.setTime(947120460000);
            for (; DateGL.getYear() < BeginTime.getYear(); ) {
                BeginTime.setTime(BeginTime.getTime() - DifferenceInYear * 1000);
            }
            for (; DateGL.getYear() > BeginTime.getYear(); ) {
                BeginTime.setTime(BeginTime.getTime() + DifferenceInYear * 1000);
            }
            for (var M = 0; DateGL.getMonth() > BeginTime.getMonth(); M++) {
                BeginTime.setTime(BeginTime.getTime() + DifferenceInMonth[M] * 1000);
            }
            if (DateGL.getDate() > BeginTime.getDate()) {
                BeginTime.setTime(BeginTime.getTime() + DifferenceInMonth[M] * 1000);
                M++;
            }
            if (DateGL.getDate() > BeginTime.getDate()) {
                BeginTime.setTime(BeginTime.getTime() + DifferenceInMonth[M] * 1000);
                M == 23 ? M = 0 : M++;
            }
            var JQ;
            if (DateGL.getDate() == BeginTime.getDate()) {
                JQ = "  今天是<font color='#FF9999'><b>" + SolarTermStr[M] + "</b></font>";
            }
            else if (DateGL.getDate() == BeginTime.getDate() - 1) {
                JQ = "  明天是<font color='#FF9999'><b>" + SolarTermStr[M] + "</b></font>";
            }
            else if (DateGL.getDate() == BeginTime.getDate() - 2) {
                JQ = "  后天是<font color='#FF9999'><b>" + SolarTermStr[M] + "</b></font>";
            }
            else {
                JQ = " "
                if (DateGL.getMonth() == BeginTime.getMonth()) {
                    JQ += "  本月";
                }
                else {
                    JQ += "  下月";
                }
                JQ += BeginTime.getDate() + "日" + "<font color='#FF9999'><b>" + SolarTermStr[M] + "</b></font>";
            }
            return JQ;
        }
        function CAL()
        { }
        RunGLNL();
        function CurentTime() {
            var now = new Date();
            var hh = now.getHours();
            var mm = now.getMinutes();
            var ss = now.getTime() % 60000;
            ss = (ss - (ss % 1000)) / 1000;
            var clock = hh + ':';
            if (mm < 10) clock += '0';
            clock += mm + ':';
            if (ss < 10) clock += '0';
            clock += ss;
            return (clock);
        } 

// --></mce:script>

相关阅读

Jstorm学习之路(—)

Jstorm简介:JStorm 可以同Hadoop MapReduce进行类比, 用户可以按照Jstorm的处理流程去实现一个Topo,然后将这个Topo交给JStorm系统,Js

JS中document.getelementbyid().value与innerHTML的区

使用document.getElementById()可以取到页面上一个有id的元素然后访问这个元素的属性,比如value 当一个元素有value属性的时候,其v

JS中的数组学习(数组的申明,数组的长度,数组便利的两种类

<html> <head> <title>js的数组</title> <meta charset="UTF-8"/> <!-- js的数组学习: 问题: 变量在程序中是用

json.dump()与json_dumps()区别

json 模块提供了一种很简单的方式来编码和解码JSON数据。 其中两个主要的函数是 json.dumps() 和 json.loads()。 1.json.dumps将

JSON操作数组数据

在JSON数据结构之中会包含数组数据内容,对于数组的内容一定要使用"[]"中括号声明,但是数组分为两种情况,一种是普通的内容文本数

分享到:

栏目导航

推荐阅读

热门阅读