国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

用JScript實(shí)現(xiàn)公歷到農(nóng)歷的日期轉(zhuǎn)換

2019-11-18 15:22:29
字體:
供稿:網(wǎng)友

bhw98(原作)

本文介紹了用查表法實(shí)現(xiàn)的公歷到農(nóng)歷日期轉(zhuǎn)換的方法,給出了實(shí)用的Jscript腳本。可接受的公歷日期范圍是2001-1-1至2050-12-31。

// 數(shù)組LunarDaysOfMonth存入農(nóng)歷2001年到2050年每年中的月天數(shù)信息
// 農(nóng)歷每月只能是29或30天,一年用12(或13)個(gè)二進(jìn)制位表示,從高到低,對應(yīng)位為1表示30天,否則29天
var LunarDaysOfMonth = new Array
(
??0xd4a8, 0xd4a0, 0xda50, 0x5aa8, 0x56a0, 0xaad8, 0x25d0, 0x92d0, 0xc958, 0xa950, // 2001-2010
??0xb4a0, 0xb550, 0xb550, 0x55a8, 0x4ba0, 0xa5b0, 0x52b8, 0x52b0, 0xa930, 0x74a8, // 2011-2020
??0x6aa0, 0xad50, 0x4da8, 0x4b60, 0x9570, 0xa4e0, 0xd260, 0xe930, 0xd530, 0x5aa0, // 2021-2030
??0x6b50, 0x96d0, 0x4ae8, 0x4ad0, 0xa4d0, 0xd258, 0xd250, 0xd520, 0xdaa0, 0xb5a0, // 2031-2040
??0x56d0, 0x4ad8, 0x49b0, 0xa4b8, 0xa4b0, 0xaa50, 0xb528, 0x6d20, 0xada0, 0x55b0?// 2041-2050
);

// 數(shù)組LunarLeapYear存放農(nóng)歷2001年到2050年閏月的月份,如沒有則為0,從高到低,每字節(jié)存兩年
var LunarLeapYear = new Array
(
??0x40, 0x02, 0x07, 0x00, 0x50, // 2001-2010
??0x04, 0x09, 0x00, 0x60, 0x04, // 2011-2020
??0x00, 0x20, 0x60, 0x05, 0x00, // 2021-2030
??0x30, 0xb0, 0x06, 0x00, 0x50, // 2031-2040
??0x02, 0x07, 0x00, 0x50, 0x03?// 2041-2050
);


// 返回農(nóng)歷iLunarYear年的閏月月份,如沒有則返回0
function GetLeapMonth(iLunarYear)
{
??var Leap = LunarLeapYear[(iLunarYear - 2001) >> 1];
??return (((iLunarYear - 2001) & 1) == 0) ? (Leap >> 4) : (Leap & 0x0f);
}

// 返回農(nóng)歷iLunarYer年iLunarMonth月的天數(shù),結(jié)果是一個(gè)長整數(shù)
// 假如iLunarMonth不是閏月, 高字為0,低字為該月的天數(shù)
// 假如iLunarMonth是閏月, 高字為后一個(gè)月的天數(shù),低字為前一個(gè)月的天數(shù)
function LunarMonthDays(iLunarYear, iLunarMonth)
{
??var High;
??var Low;
??var Bit;

??High = 0;
??Low = 29;
??Bit = 16 - iLunarMonth;
??if ((iLunarMonth > GetLeapMonth(iLunarYear)) && (GetLeapMonth(iLunarYear) > 0))?Bit--;
??if ((LunarDaysOfMonth[iLunarYear - 2001] & (1 << Bit)) > 0)?Low++;
??if (iLunarMonth == GetLeapMonth(iLunarYear))
??{
????High = ((LunarDaysOfMonth[iLunarYear - 2001] & (1 << (Bit-1))) > 0) ??30 : 29;
??}

??return Low + (High << 16);
}

// 返回農(nóng)歷iLunarYear年的總天數(shù)
function LunarYearDays(iLunarYear)
{
??var Days;
??var tmp;

??Days = 0;
??for (var i=1; i <= 12; i++)
??{
????tmp = LunarMonthDays(iLunarYear, i);
????Days = Days + ((tmp >> 16) & 0xffff); //取高位
????Days = Days + (tmp & 0xffff); //取低位
??}

??return Days;
}

// 將農(nóng)歷iLunarYear年格式化成天干地支記年法表示的字符串
function FormatLunarYear(iLunarYear)
{
??var szText1 = new String("甲乙丙丁戊己庚辛壬癸");
??var szText2 = new String("子丑寅卯辰巳午未申酉戌亥");
??var strYear;
?
??strYear = szText1.substr((iLunarYear - 4) % 10, 1);
??strYear = strYear + szText2.substr((iLunarYear - 4) % 12, 1);

??return strYear + "年";
}

// 將農(nóng)歷iLunarMonth月格式化成農(nóng)歷表示的字符串
function FormatLunarMonth(iLunarMonth)
{
??var szText = new String("正二三四五六七八九十");
??var strMonth;



發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 龙州县| 洪雅县| 赤峰市| 海丰县| 高安市| 红原县| 杨浦区| 屯门区| 辉南县| 阜阳市| 鄯善县| 武宣县| 化隆| 夏邑县| 北川| 垣曲县| 祁门县| 长岭县| 雅安市| 阿拉尔市| 天气| 昆山市| 临漳县| 潼南县| 鄂托克旗| 郴州市| 象州县| 淮滨县| 丹阳市| 宁陕县| 蛟河市| 永和县| 汝阳县| 革吉县| 丰县| 丹巴县| 临清市| 宁阳县| 建瓯市| 大名县| 永丰县|