﻿/*
功能：动态获取服务器时间
作者：杨挺
修改日期：2010-03-29
公司：北京糖果网络技术有限公司
*/
/// <reference path="jquery-1.3.2.min.js" />

var hr = null;
if (window.XMLHttpRequest) {
    try {
        hr = new XMLHttpRequest();
    }
    catch (e) {
        ;
    }
}
else if (window.ActiveXObject) {
    try {
        hr = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
        ;
    }
    if (hr == null) {
        try {
            hr = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e) {
            ;
        }
    }
}
hr.open("HEAD", "date.aspx", false);
hr.send(null);
var curDate = new Date;
if (hr.getResponseHeader("Date") != null)
    var offsetTime = curDate - Date.parse(hr.getResponseHeader("Date"));
else
    offsetTime = 0;
curDate.setTime(new Date - offsetTime);
var CalendarData = new Array(20);
var jq = new Array(24);
var madd = new Array(12);
var TheDate = curDate;
var tgString = "甲乙丙丁戊己庚辛壬癸";
var dzString = "子丑寅卯辰巳午未申酉戌亥";
var numString = "一二三四五六七八九十";
var monString = "正二三四五六七八九十冬腊";
var weekString = "日一二三四五六";
var sx = "鼠牛虎兔龙蛇马羊猴鸡狗猪";
var cYear;
var cMonth;
var cDay;
var cHour;
var cDateString;
var DateString;
var jieqie;
function initTime() {
    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 = "";
    tmp += tgString.charAt((cYear - 4) % 10);       //年干     
    tmp += dzString.charAt((cYear - 4) % 12);       //年支     
    tmp += "年&nbsp;";
    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);

    cDateString = tmp;
    return tmp;
};

function formatTime(obj) {
//    if (parseInt(obj) == 0) {
//        return "00";
//    }
//    else if (parseInt(obj) < 10) {
//        return "0" + parseInt(obj) % 10;
//    }
    //    else {
    return parseInt(parseInt(obj) / 10).toString() + (parseInt(obj) % 10).toString();
    //}
};



function loadtime() {
    initTime();
    e2c();
    GetcDateString();

    setInterval(function() {
        curDate.setTime(new Date - offsetTime);
        var b = '<a href=\"http://www.tg1234.com/tools/rili.htm\" target=\"_blank\">';
        b = b + "2010年" + (curDate.getMonth() + 1) + "月" + curDate.getDate() + "日&nbsp;";

        var Month = curDate.getMonth() + 1;
        var day = curDate.getDate();
        jieqie = "";
        if (Month == 1) {
            if (day == 5)
                jieqie = "小寒";
            else if (day == 20)
                jieqie = "大寒";
        }
        else if (Month == 2) {
            if (day == 3)
                jieqie = "立春";
            else if (day == 18)
                jieqie = "雨水";
        }
        else if (Month == 3) {
            if (day == 5)
                jieqie = "惊蜇";
            else if (day == 20)
                jieqie = "春分";
        }

        else if (Month == 4) {
            if (day == 4)
                jieqie = "清明";
            else if (day == 19)
                jieqie = "谷雨";
        }

        else if (Month == 5) {
            if (day == 5)
                jieqie = "立夏";
            else if (day == 20)
                jieqie = "小满";
        }

        else if (Month == 6) {
            if (day == 5)
                jieqie = "芒种";
            else if (day == 21)
                jieqie = "夏至";
        }
        else if (Month == 7) {
            if (day == 6)
                jieqie = "小暑";
            else if (day == 22)
                jieqie = "大暑";
        }
        else if (Month == 8) {
            if (day == 7)
                jieqie = "立秋";
            else if (day == 22)
                jieqie = "处暑";
        }
        else if (Month == 9) {
            if (day == 7)
                jieqie = "白露";
            else if (day == 22)
                jieqie = "秋分";
        }
        else if (Month == 10) {
            if (day == 8)
                jieqie = "寒露";
            else if (day == 23)
                jieqie = "霜降";
        }
        else if (Month == 11) {
            if (day == 7)
                jieqie = "立冬";
            else if (day == 22)
                jieqie = "小雪";
        }
        else if (Month == 12) {
            if (day == 6)
                jieqie = "大雪";
            else if (day == 21)
                jieqie = "冬至";
        }
        b = b + "星期" + weekString.charAt(TheDate.getDay()) + "&nbsp;&nbsp;";            b = b + cDateString;
        if (String(jieqie).length > 0)
            b += "[<font color=\"red\">" + jieqie + "</font>]</a>&nbsp;&nbsp;";
        else
            b += "</a>&nbsp;&nbsp;";
         b =b+formatTime(curDate.getHours()) + "&nbsp;:&nbsp;" + formatTime(TheDate.getMinutes()) + "&nbsp;:&nbsp;" + formatTime(TheDate.getSeconds());         
        $("#rili").html(b); 

        


    }, 1000);
};

