﻿var lunarInfo = new Array(
0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2,
0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977,
0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970,
0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950,
0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557,
0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5d0, 0x14573, 0x052d0, 0x0a9a8, 0x0e950, 0x06aa0,
0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0,
0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b5a0, 0x195a6,
0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570,
0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x055c0, 0x0ab60, 0x096d5, 0x092e0,
0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5,
0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930,
0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530,
0x05aa0, 0x076a3, 0x096d0, 0x04bd7, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45,
0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0)

var solarMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var Gan = new Array("甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸");
var Zhi = new Array("子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥");
var Animals = new Array("鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪");
var solarTerm = new Array("小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑", "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪", "冬至")
var sTermInfo = new Array(0, 21208, 42467, 63836, 85337, 107014, 128867, 150921, 173149, 195551, 218072, 240693, 263343, 285989, 308563, 331033, 353350, 375494, 397447, 419210, 440795, 462224, 483532, 504758)
var nStr1 = new Array('日', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十')
var nStr2 = new Array('初', '十', '廿', '卅', '　')
var monthName = new Array("JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC");
var mywitchtimeout = 0;
/**//*****************************************************************************   
                                                                             日期计算   
*****************************************************************************/

//======================================   传回农历   y年的总天数   
function lYearDays(y) {
    var i, sum = 348
    for (i = 0x8000; i > 0x8; i >>= 1) sum += (lunarInfo[y - 1900] & i) ? 1 : 0
    return (sum + leapDays(y))
}

//======================================   传回农历   y年闰月的天数   
function leapDays(y) {
    if (leapMonth(y)) return ((lunarInfo[y - 1900] & 0x10000) ? 30 : 29)
    else return (0)
}

//======================================   传回农历   y年闰哪个月   1-12   ,   没闰传回   0   
function leapMonth(y) {
    return (lunarInfo[y - 1900] & 0xf)
}

//======================================   传回农历   y年m月的总天数   
function monthDays(y, m) {
    return ((lunarInfo[y - 1900] & (0x10000 >> m)) ? 30 : 29)
}

//获取24节气
function sTermJieqi(y, n) {
    var offDate = new Date((31556925974.7 * (y - 1900) + sTermInfo[n] * 60000) + Date.UTC(1900, 0, 6, 2, 5))
    return (offDate.getUTCDate())
} 

//======================================   算出农历,   传入日期物件,   传回农历日期物件   
//该物件属性有   .year   .month   .day   .isLeap   .yearCyl   .dayCyl   .monCyl   
function Lunar(objDate) {

    var i, leap = 0, temp = 0
    var baseDate = new Date(1900, 0, 31)
    var offset = (objDate - baseDate) / 86400000

    this.dayCyl = offset + 40
    this.monCyl = 14

    for (i = 1900; i < 2050 && offset > 0; i++) {
        temp = lYearDays(i)
        offset -= temp
        this.monCyl += 12
    }

    if (offset < 0) {
        offset += temp;
        i--;
        this.monCyl -= 12
    }

    this.year = i
    this.yearCyl = i - 1864

    leap = leapMonth(i)   //闰哪个月   
    this.isLeap = false

    for (i = 1; i < 13 && offset > 0; i++) {
        //闰月   
        if (leap > 0 && i == (leap + 1) && this.isLeap == false)
        { --i; this.isLeap = true; temp = leapDays(this.year); }
        else
        { temp = monthDays(this.year, i); }

        //解除闰月   
        if (this.isLeap == true && i == (leap + 1)) this.isLeap = false

        offset -= temp
        if (this.isLeap == false) this.monCyl++
    }
    if (offset == 0 && leap > 0 && i == leap + 1)
        if (this.isLeap)
    { this.isLeap = false; }
    else
    { this.isLeap = true; --i; --this.monCyl; }

    if (offset < 0) { offset += temp; --i; --this.monCyl; }

    this.month = i
    this.day = offset + 1
}

//==============================传回国历   y年某m+1月的天数   
function solarDays(y, m) {
    if (m == 1)
        return (((y % 4 == 0) && (y % 100 != 0) || (y % 400 == 0)) ? 29 : 28)
    else
        return (solarMonth[m])
}
//==============================   传入   offset   传回干支,   0=甲子   
function cyclical(num) {
    return (Gan[num % 10] + Zhi[num % 12])
}

//======================   中文日期   
function cDay(d) {
    var s;

    switch (d) {
        case 10:
            s = '初十'; break;
        case 20:
            s = '二十'; break;
            break;
        case 30:
            s = '三十'; break;
            break;
        default:
            s = nStr2[Math.floor(d / 10)];
            s += nStr1[Math.floor(d % 10)];
    }
    //debugger;
    return (s);
}
//======================   中文月份   
function cMonth(m) {
    var s;

    switch (m) {
        case 1:
            s = '正月'; break;
        case 2:
            s = '二月'; break;
        case 3:
            s = '三月'; break;
        case 4:
            s = '四月'; break;
        case 5:
            s = '五月'; break;
        case 6:
            s = '六月'; break;
        case 7:
            s = '七月'; break;
        case 8:
            s = '八月'; break;
        case 9:
            s = '九月'; break;
        case 10:
            s = '十月'; break;
        case 11:
            s = '十一月'; break;
        case 12:
            s = '十二月'; break;
        default:
            break;
    }
    return (s);
}

//======================   中文月份   
function cWeek(w) {
    var s;

    switch (w) {
        case 0:
            s = '星期日'; break;
        case 1:
            s = '星期一'; break;
        case 2:
            s = '星期二'; break;
        case 3:
            s = '星期三'; break;
        case 4:
            s = '星期四'; break;
        case 5:
            s = '星期五'; break;
        case 6:
            s = '星期六'; break;
        default:
            break;
    }
    return (s);
}
function timerWitch() {
    clearTimeout(mywitchtimeout);
    var sDObj = new Date(); 
    $("#timeSpan").html(IsTen(sDObj.getHours() )+ ":" + IsTen(sDObj.getMinutes()) + ":" + IsTen(sDObj.getSeconds()));
    window.setTimeout("timerWitch()", 1000);
}
function IsTen(timers) {
    if (timers < 10) {
        timers = "0" + timers;
    }
    return timers;
}

function GetLunarDay() {
    var sDObj = new Date();
    var lDObj = new Lunar(sDObj);           //农历
    var str = '<p class="n_date"><b>' + sDObj.getFullYear() + '</b><br /><i>' + (sDObj.getMonth()+1) + '.' + sDObj.getDate() + '</i><br />' + cWeek(sDObj.getDay()) + '</p><span class="c080">时间与日期</span>\
            <p class="n_time">农历：' + cMonth(lDObj.month) + cDay(lDObj.day) + '<br />时间：<span id="timeSpan"></span></p>';
    return str;
}

function GetLunarDay3() {
    var sDObj = new Date();
    var lDObj = new Lunar(sDObj);           //农历
    var jieqi1 = sTermJieqi(sDObj.getFullYear(), sDObj.getMonth() * 2);
    var jieqi2 = sTermJieqi(sDObj.getFullYear(), sDObj.getMonth() * 2 + 1);
    var jieqiValue = "";
    if (jieqi1 == sDObj.getDate()) {
        jieqiValue = solarTerm[sDObj.getMonth() * 2];
    }
    else if (jieqi2 == sDObj.getDate()) {
        jieqiValue = solarTerm[sDObj.getMonth() * 2 + 1];
    }
    var str = "<div class='f_l f_ver t_c'>" +
                    	"<strong class='cf60'>" + sDObj.getFullYear() + "</strong><br /><em class='cf60 b'>" + (sDObj.getMonth() + 1) + '.' + sDObj.getDate() + "</em><br /><b class='fs14'>" + cWeek(sDObj.getDay()) + "</b></div>" +
                    "<div class='f_r f_ver'>农历:<br /><strong class='fs14 b'>" + cMonth(lDObj.month) + cDay(lDObj.day) + " " + jieqiValue + "</strong><br /><br />北京时间:<br /><em class='fs14 cf60 b' id='timeSpan3'></em></div>";
    return str;
}

function GetLunarDayYunYang() {
    var sDObj = new Date();
    var lDObj = new Lunar(sDObj);           //农历
    var jieqi1 = sTermJieqi(sDObj.getFullYear(), sDObj.getMonth() * 2);
    var jieqi2 = sTermJieqi(sDObj.getFullYear(), sDObj.getMonth() * 2 + 1);
    var jieqiValue = "";
    if (jieqi1 == sDObj.getDate()) {
        jieqiValue = solarTerm[sDObj.getMonth() * 2];
    }
    else if (jieqi2 == sDObj.getDate()) {
        jieqiValue = solarTerm[sDObj.getMonth() * 2 + 1];
    }
    var str = sDObj.getFullYear() + "年" + (sDObj.getMonth() + 1) + '月' + sDObj.getDate() + "日【农历 " + cMonth(lDObj.month) + cDay(lDObj.day) + "】" + cWeek(sDObj.getDay());
    return str;
}

function timerWitch3() {
    clearTimeout(mywitchtimeout);
    var sDObj = new Date();
    $("#timeSpan3").html(IsTen(sDObj.getHours()) + ":" + IsTen(sDObj.getMinutes()) + ":" + IsTen(sDObj.getSeconds()));
    window.setTimeout("timerWitch3()", 1000);
}

//格式化时间(PubTime.format("yyyy/MM/dd hh:mm:ss"))
Date.prototype.format = function(format) {
    var o = {
        "M+": this.getMonth() + 1,   //month  
        "d+": this.getDate(),         //day  
        "h+": this.getHours(),       //hour  
        "m+": this.getMinutes(),   //minute  
        "s+": this.getSeconds(),   //second  
        "q+": Math.floor((this.getMonth() + 3) / 3),     //quarter  
        "S": this.getMilliseconds()   //millisecond  
    }
    if (/(y+)/.test(format)) format = format.replace(RegExp.$1,
          (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o) if (new RegExp("(" + k + ")").test(format))
        format = format.replace(RegExp.$1,
              RegExp.$1.length == 1 ? o[k] :
                  ("00" + o[k]).substr(("" + o[k]).length));
    return format;
};

var yanyu = {};
yanyu.List = {};
yanyu.List[0] = "云下山，地不干";
yanyu.List[1] = "云绞云，雨淋淋";
yanyu.List[2] = "黑云接驾，不阴就下";
yanyu.List[3] = "云低要雨，云高转晴";
yanyu.List[4] = "天色亮一亮，河水涨一丈";
yanyu.List[5] = "红云变黑云，必有大雨淋";
yanyu.List[6] = "天上豆英云，地上晒死人";
yanyu.List[7] = "日落乌云涨，半夜听雨响";
yanyu.List[8] = "日落胭脂红，非雨便是风";
yanyu.List[9] = "日落云里走，雨在半夜后";
yanyu.List[10] = "天上跑台云，地上雨淋淋";
yanyu.List[11] = "西北起黑云，雷雨必来临";
yanyu.List[12] = "云自东北起，必有风和雨";
yanyu.List[13] = "有雨山戴帽，无雨山没腰";
yanyu.List[14] = "天上鱼鳞斑，晒谷不用翻";
yanyu.List[15] = "不怕阴雨天气久，只要西北开了口";
yanyu.List[16] = "时雨时晴，几天几夜不停";
yanyu.List[17] = "朝有破紫云，午后雷雨临";
yanyu.List[18] = "东风急，备斗笠";
yanyu.List[19] = "风静闷热，雷雨强烈";
yanyu.List[20] = "急雨易晴，慢雨不开";
yanyu.List[21] = "雨后生东风，未来雨更凶";
yanyu.List[22] = "雨前有风雨不久，雨后无风雨不停";
yanyu.List[23] = "不刮东风不雨，不刮西风不晴";
yanyu.List[24] = "星星密，雨滴滴";
yanyu.List[25] = "星星稀，好天气";
yanyu.List[26] = "星星明，来日晴";
yanyu.List[27] = "星星眨眼，有雨不起";
yanyu.List[28] = "直闪雨小，横闪雨大";
yanyu.List[29] = "炸雷雨小，闷雷雨大";
yanyu.List[30] = "雷轰天顶，虽雨不猛";
yanyu.List[31] = "雷轰天边，大雨连天";
yanyu.List[32] = "小暑一声雷，倒转做黄梅";
yanyu.List[33] = "南闪火开门，北闪有雨临";
yanyu.List[34] = "泥鳅跳，雨来到";
yanyu.List[35] = "泥鳅静，天气晴";
yanyu.List[36] = "青蛙叫，大雨到";
yanyu.List[37] = "鸡进笼晚兆阴雨";
yanyu.List[38] = "燕子低飞要落雨";
yanyu.List[39] = "蚂蚁搬家早晚要下";
yanyu.List[40] = "蜜蜂归窠迟，来日好天气";
yanyu.List[41] = "鱼儿出水跳，风雨就来到";
yanyu.List[42] = "蜻蜓飞得低，出门带斗笠";
yanyu.List[43] = "扑地烟，雨连天";
yanyu.List[44] = "水缸穿裙，大雨淋淋";
yanyu.List[45] = "咸物返潮天将雨";
yanyu.List[46] = "柱石脚下潮有雨";
yanyu.List[47] = "草灰结成饼，天有风雨临";
yanyu.List[48] = "水里泛青苔，天有风雨来";
yanyu.List[49] = "满天乱飞云，雨雪下不停";
yanyu.List[50] = "天上乌云盖，大雨来得快";
yanyu.List[51] = "有雨天边亮，无雨顶上光";
yanyu.List[52] = "喜鹊枝头叫，出门晴天报";
yanyu.List[53] = "蚊子咬得怪，天气要变坏";
yanyu.List[54] = "河里浮青苔，毕有大雨来 ";
yanyu.List[55] = "头发响，风一场";
yanyu.List[56] = "朝起红霞晚落雨 晚起红霞晒死鱼";
yanyu.List[57] = "喜鹊搭窝高，当年雨水涝";
yanyu.List[58] = "久雨闻鸟鸣，不久即转晴";
yanyu.List[59] = "海雀向上飞，有风不等黑";
yanyu.List[60] = "鸟往船上落，雨天要经过";
yanyu.List[61] = "喜鹊枝头叫，出门晴天报";
yanyu.List[62] = "蟋蟀上房叫，庄稼挨水泡";
yanyu.List[63] = "蚊子咬的怪，天气要变坏";
yanyu.List[64] = "蜻蜓千百绕，不日雨来到";
yanyu.List[65] = "蜜蜂采花忙，短期有雨降";
yanyu.List[66] = "腰酸疮疤痒，有雨在半晌";
yanyu.List[67] = "枣花多主旱，梨花多主涝";
yanyu.List[68] = "晴天不见山，下雨三五天";
yanyu.List[69] = "河里泛青苔，必有大雨来";
yanyu.List[70] = "海水起黄沫，大风不久过";
yanyu.List[71] = "五月南风下大雨，六月南风井底干";
yanyu.List[72] = "春雷十日阴，春雷十日寒";
yanyu.List[73] = "天上棉絮云，地上有雨淋";
yanyu.List[74] = "南风吹到底，北风来还礼";
yanyu.List[75] = "白茫茫雾晴，灰沉沉雾雨";
yanyu.List[76] = "朝霞不出门，暮霞行千里";
yanyu.List[77] = "太阳照黄光，明日风雨狂";
yanyu.List[78] = "太阳正午现一现，以后三天不见面";
yanyu.List[79] = "春雨贵如油，夏雨遍地流";
yanyu.List[80] = "春季无大风，夏季雨水穷";
yanyu.List[81] = "大暑不雨秋天旱";
yanyu.List[82] = "秋水纷纷，冬雪满天";
yanyu.List[83] = "三九欠东风，黄梅无大雨";
yanyu.List[84] = "寒水枯，春水多";
yanyu.List[85] = "蝉儿叫叫停停，连阴雨将来临";
yanyu.List[86] = "鱼儿出水跳，风雨快来到";

