jQuery獲取某天的農(nóng)歷日期并判斷是否除夕或新年的方法
本文實(shí)例講述了jQuery獲取某天的農(nóng)歷日期并判斷是否除夕或新年的方法。分享給大家供大家參考,具體如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> //------------------- Begin ---------------------- CalendarHelper={}; CalendarHelper.GetCNDate = function (D) { var CalendarData = new Array(100); var madd = new Array(12); var tgString = "甲乙丙丁戊己庚辛壬癸"; var dzString = "子丑寅卯辰巳午未申酉戌亥"; var numString = "一二三四五六七八九十"; var monString = "正二三四五六七八九十冬臘"; var weekString = "日一二三四五六"; var sx = "鼠牛虎兔龍蛇馬羊猴雞狗豬"; var cYear, cMonth, cDay, TheDate; CalendarData = new Array(0xA4B, 0x5164B, 0x6A5, 0x6D4, 0x415B5, 0x2B6, 0x957, 0x2092F, 0x497, 0x60C96, 0xD4A, 0xEA5, 0x50DA9, 0x5AD, 0x2B6, 0x3126E, 0x92E, 0x7192D, 0xC95, 0xD4A, 0x61B4A, 0xB55, 0x56A, 0x4155B, 0x25D, 0x92D, 0x2192B, 0xA95, 0x71695, 0x6CA, 0xB55, 0x50AB5, 0x4DA, 0xA5B, 0x30A57, 0x52B, 0x8152A, 0xE95, 0x6AA, 0x615AA, 0xAB5, 0x4B6, 0x414AE, 0xA57, 0x526, 0x31D26, 0xD95, 0x70B55, 0x56A, 0x96D, 0x5095D, 0x4AD, 0xA4D, 0x41A4D, 0xD25, 0x81AA5, 0xB54, 0xB6A, 0x612DA, 0x95B, 0x49B, 0x41497, 0xA4B, 0xA164B, 0x6A5, 0x6D4, 0x615B4, 0xAB6, 0x957, 0x5092F, 0x497, 0x64B, 0x30D4A, 0xEA5, 0x80D65, 0x5AC, 0xAB6, 0x5126D, 0x92E, 0xC96, 0x41A95, 0xD4A, 0xDA5, 0x20B55, 0x56A, 0x7155B, 0x25D, 0x92D, 0x5192B, 0xA95, 0xB4A, 0x416AA, 0xAD5, 0x90AB5, 0x4BA, 0xA5B, 0x60A57, 0x52B, 0xA93, 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() { TheDate = (arguments.length != 3) ? new Date() : new Date(arguments[0], arguments[1], arguments[2]); var total, m, n, k; var isEnd = false; var tmp = TheDate.getYear(); if (tmp < 1900) { tmp += 1900; } total = (tmp - 1921) * 365 + Math.floor((tmp - 1921) / 4) + madd[TheDate.getMonth()] + TheDate.getDate() - 38; 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 = 1921 + 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--; } } } function GetcDateString() { var tmp = ""; tmp += tgString.charAt((cYear - 4) % 10); tmp += dzString.charAt((cYear - 4) % 12); tmp += "("; tmp += sx.charAt((cYear - 4) % 12); 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); } return tmp; } function GetLunarDay(solarYear, solarMonth, solarDay) { //solarYear = solarYear<1900?(1900+solarYear):solarYear; if (solarYear < 1921 || solarYear > 2020) { return ""; } else { solarMonth = (parseInt(solarMonth) > 0) ? (solarMonth - 1) : 11; e2c(solarYear, solarMonth, solarDay); return GetcDateString(); } } var yy = D.getFullYear(); var mm = D.getMonth() + 1; var dd = D.getDate(); var ww = D.getDay(); var ss = parseInt(D.getTime() / 1000); if (yy < 100) yy = "19" + yy; return GetLunarDay(yy, mm, dd); }; CalendarHelper.GetAddDay = function (D, v) { var LSTR_ndate = D; var LSTR_Year = LSTR_ndate.getYear(); var LSTR_Month = LSTR_ndate.getMonth(); var LSTR_Date = LSTR_ndate.getDate(); //處理 var uom = new Date(LSTR_Year, LSTR_Month, LSTR_Date); uom.setDate(uom.getDate() + v); //取得系統(tǒng)時(shí)間的前一天,重點(diǎn)在這里,負(fù)數(shù)是前幾天,正數(shù)是后幾天 return uom; } //是否除夕 CalendarHelper.IsLastDayBeforeNewYearOfCN = function (D) { var strCurrDay = CalendarHelper.GetCNDate(D); var strNextDay = CalendarHelper.GetCNDate(CalendarHelper.GetAddDay(D, 1)); //alert(strCurrDay+","+strNextDay); return strCurrDay.split('年')[0] != strNextDay.split('年')[0]; }; //是否春節(jié) CalendarHelper.IsNewYearOfCN = function (D) { var strCurrDay = CalendarHelper.GetCNDate(D); var strPrevDay = CalendarHelper.GetCNDate(CalendarHelper.GetAddDay(D, -1)); //alert(strCurrDay+","+strPrevDay); return strCurrDay.split('年')[0] != strPrevDay.split('年')[0]; }; //------------------- End ---------------------- var d1 = new Date(); var d2 = new Date(2013, 1, 9); //注:此處相當(dāng)于2013年2月9號(hào) var d3 = new Date(2013, 1, 10); var result = GetResult(d1) + GetResult(d2) + GetResult(d3); alert(result); function GetResult(D) { var y = D.getFullYear(); var m = D.getMonth() + 1; var dd = D.getDate(); var str = y + "年" + m + "月" + dd + "日"; var isR = CalendarHelper.IsLastDayBeforeNewYearOfCN(D); var isN = CalendarHelper.IsNewYearOfCN(D); return "日期:"+str+","+ (isR?"是":"不是") + "除夕" + "," + (isN?"是":"不是") + "春節(jié)\n\n" ; } </script> </head> <body> </body> </html>
更多關(guān)于jQuery相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《jQuery日期與時(shí)間操作技巧總結(jié)》、《jQuery拖拽特效與技巧總結(jié)》、《jQuery擴(kuò)展技巧總結(jié)》、《jQuery常見(jiàn)經(jīng)典特效匯總》、《jQuery動(dòng)畫(huà)與特效用法總結(jié)》、《jquery選擇器用法總結(jié)》及《jQuery常用插件及用法總結(jié)》
希望本文所述對(duì)大家jQuery程序設(shè)計(jì)有所幫助。
- jQuery帶時(shí)間的日期控件代碼分享
- jQuery插件datepicker 日期連續(xù)選擇
- Jquery日期選擇datepicker插件用法實(shí)例分析
- jQuery實(shí)現(xiàn)簡(jiǎn)單的日期輸入格式化控件
- jquery獲取當(dāng)前日期的方法
- jquery實(shí)現(xiàn)在頁(yè)面加載的時(shí)自動(dòng)為日期插件添加當(dāng)前日期
- jQuery ui 利用 datepicker插件實(shí)現(xiàn)開(kāi)始日期(minDate)和結(jié)束日期(maxDate)
- JQuery EasyUI 日期控件如何控制日期選擇區(qū)間
- jquery validate 自定義驗(yàn)證方法介紹 日期驗(yàn)證
- jquery 日期控件datepicker屬性詳細(xì)解析
- jQuery之日期選擇器的深入解析
- 獲取客戶(hù)端電腦日期時(shí)間js代碼(jquery)
相關(guān)文章
利用jQuery實(shí)現(xiàn)簡(jiǎn)單的拖曳效果實(shí)例代碼
最近發(fā)現(xiàn)一個(gè)網(wǎng)站的拖拽效果挺好的,個(gè)人覺(jué)得是一種不錯(cuò)的用戶(hù)體驗(yàn),抽空研究了一下,所以這篇文章主要給大家介紹了關(guān)于利用jQuery實(shí)現(xiàn)簡(jiǎn)單的拖曳效果的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來(lái)一起看看詳細(xì)的介紹吧。2017-10-10jQuery綁定事件不執(zhí)行但alert后可以正常執(zhí)行
這篇文章主要為大家解決下為什么jQuery綁定事件不執(zhí)行而alert后可以正常執(zhí)行,需要的朋友可以參考下2014-06-06基于Jquery實(shí)現(xiàn)鍵盤(pán)按鍵監(jiān)聽(tīng)
本文介紹下,用jquery實(shí)現(xiàn)的滑動(dòng)效果,以及對(duì)鍵盤(pán)按鍵進(jìn)行監(jiān)聽(tīng)的例子,有需要的朋友,可以參考學(xué)習(xí)下2014-05-05Jquery CheckBox全選方法代碼附j(luò)s checkbox全選反選代碼
喜歡上了Jquery的簡(jiǎn)便、明了···與用JavaScript寫(xiě)的比起來(lái)真的有點(diǎn)差距!2010-06-06jquery簡(jiǎn)單實(shí)現(xiàn)網(wǎng)頁(yè)層的展開(kāi)與收縮效果
這篇文章主要介紹了jquery簡(jiǎn)單實(shí)現(xiàn)網(wǎng)頁(yè)層的展開(kāi)與收縮效果的方法,涉及jquery中toggle結(jié)合animate方法操作頁(yè)面元素屬性的相關(guān)技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-08-08