zoukankan      html  css  js  c++  java
  • JAVASCRIPT显示农历的日历

    JAVASCRIPT显示农历的日历 显示效果: 
    2007年2月28日 星期三 农历丁亥年 正月十一

    <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);  
    }  
    </SCRIPT>
  • 相关阅读:
    springboot 整合jdbcTemplate
    springboot 整合springDataJPA
    springboot 全局异常处理
    springboot整合jsp模板
    springboot整合mybatis+pageHelper
    springboot整合mybatis
    springboot使用fastJson作为json解析框架
    springBoot开启热部署
    springboot快速入门
    解决springboot启动失败问题:Unable to start embedded container;
  • 原文地址:https://www.cnblogs.com/zengxiangzhan/p/1565322.html
Copyright © 2011-2022 走看看