﻿// 日历行为

var myDate  =new Date();
var myYear  =myDate.getFullYear();
var mymonth =myDate.getMonth()+1;
var hours   =myDate.getHours();
var minutes =myDate.getMinutes();
var seconds =myDate.getSeconds();
var timeValue = + ((hours >12) ? hours -12 :hours); timeValue += ((minutes < 10) ? ":0" : ":") + minutes+"";
timeValue += (hours >= 12) ? "PM" : "AM";
var CalendarData=new   Array(20);
var madd=new   Array(12);
var TheDate=new   Date(); 
var numString="一二三四五六七八九十";
var monString="正二三四五六七八九十冬腊";
var weekString="日一二三四五六";
var cYear;
var cMonth;
var cDateString;    //定义农历
var DateString;
function   init(){
    CalendarData[0]=0x41A95;CalendarData[1]=0xD4A;CalendarData[2]=0xDA5;CalendarData[3]=0x20B55;
    CalendarData[4]=0x56A;CalendarData[5]=0x7155B;CalendarData[6]=0x25D;CalendarData[7]=0x92D;
    CalendarData[8]=0x5192B;CalendarData[9]=0xA95;CalendarData[10]=0xB4A;CalendarData[11]=0x416AA;
    CalendarData[12]=0xAD5;CalendarData[13]=0x90AB5;CalendarData[14]=0x4BA;CalendarData[15]=0xA5B;
    CalendarData[16]=0x60A57;CalendarData[17]=0x52B;CalendarData[18]=0xA93;CalendarData[19]=0x40E95;
    madd[0]=0;madd[1]=31;madd[2]=59;madd[3]=90;madd[4]=120;madd[5]=151;madd[6]=181;madd[7]=212;
    madd[8]=243;madd[9]=273;madd[10]=304;madd[11]=334;
}
function   GetBit(m,n){return    (m>>n)&1;}
function   e2c(){
    var   total,m,n,k;
    var   isEnd=false;
    var   tmp=TheDate.getYear();
    if   (tmp<1900)     tmp+=1900;
    total=(tmp-2001)*365+Math.floor((tmp-2001)/4)+madd[TheDate.getMonth()] +TheDate.getDate()-23;
    if(TheDate.getYear()%4==0&&TheDate.getMonth()>1)
        total++;
    for(m=0;;m++){
        k=(CalendarData[m]<0xfff)?11:12;
        for(n=k;n>=0;n--){   
            if(total<=29+GetBit(CalendarData[m],n)){isEnd=true;break;}
            total=total-29-GetBit(CalendarData[m],n);
            }
        if(isEnd)break;
        }
    cYear=2001+m;
    cMonth=k-n+1;
    cDay=total;
    if(k==12){
        if(cMonth==Math.floor(CalendarData[m]/0x10000)+1)cMonth=1-cMonth;
        if(cMonth>Math.floor(CalendarData[m]/0x10000)+1)cMonth--;
        }
    cHour=Math.floor((TheDate.getHours()+3)/2);
}
function   GetcDateString(){   //获取农历
var   tmp="";
if(cMonth<1){ tmp+="闰";tmp+=monString.charAt(-cMonth-1); }
else    tmp+=monString.charAt(cMonth-1);
tmp+="月";
tmp+=(cDay<11)?"初":((cDay<20)?"十":((cDay<30)?"廿":"卅"));
if(cDay%10!=0||cDay==10)
tmp+=numString.charAt((cDay-1)%10);
tmp+="    ";
cDateString=tmp;
return   tmp;
}
function   GetDateString(){
    var   tmp="";
    var   t1=TheDate.getYear();
    if   (t1<1900)t1+=1900;
    tmp+=t1+"年"+(TheDate.getMonth()+1)+"月"+TheDate.getDate()+" 日"+TheDate.getHours()+":" +((TheDate.getMinutes()<10)?"0":"")+TheDate.getMinutes()+"星期"+weekString.charAt(TheDate.getDay());
    DateString=tmp;
    return   tmp;
}
init();
e2c();
GetcDateString();    //执行获取农历
function tick(){
var today, theday;
today = new Date();
function initArray(){
this.length=initArray.arguments.length
for(var i=0;i<this.length;i++)
this[i+1]=initArray.arguments[i] }
theday = today.getYear()+" "+"年";
timeString = theday;
Clock.innerHTML = timeString;
window.setTimeout("tick();", 100);}
window.onload = tick;
function JCalendar(year,month,date){//实例变量
    var _date=arguments.length == 0 ? new Date() : new Date(year,month-1,date);
    this.year=_date.getFullYear();
    this.month=_date.getMonth() + 1;
    this.fday = new Date(this.year,this.month-1,1).getDay();//每月第一天的星期数
    this.dayNum = new Date(this.year,this.month,0).getDate();//每月的天数
    //成员变量
    JCalendar.cur_year = this.year;
    JCalendar.cur_month = this.month;
    JCalendar.cur_date = _date.getDate();
}