zoukankan      html  css  js  c++  java
  • 查看当前日期的农历日期的JS

    查看当前日期的农历日期的JS

    查看当前日期的农历日期的JS
    2008年07月09日 星期三 07:27

    一个今天是多少日期的JS

    预览效果:2008年5月9日 星期五 农历戊子年 四月初五

    js 文件如下:today.js

    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);
    }

    使用的时候保存改js,然后在需要显示日期的地方使用下面的语句(请自己修改地址)

    <script type="text/javascript" language="javascript" src="js/v1/today.js"></script>

  • 相关阅读:
    log4net 开启内部调试
    负载均衡的基本算法
    MapReduce算法形式六:只有Map独自作战
    MapReduce算法形式五:TOP—N
    MapReduce算法形式四:mapjoin
    MapReduce算法形式三:cleanup
    MapReduce算法形式二:去重(HashSet)
    MapReduce算法形式二:去重(shuffle)
    MapReduce算法形式一:WordCount
    理解yarn平台,理解万岁,肤浅理解也万岁~
  • 原文地址:https://www.cnblogs.com/hateyoucode/p/1334773.html
Copyright © 2011-2022 走看看