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.getFullYear();if (tmp < 1900) {tmp += 1900;}total = (tmp - 1921) * 365 + Math.floor((tmp - 1921) / 4) + madd[TheDate.getMonth()] + TheDate.getDate() - 38;if (TheDate.getFullYear() % 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.getFullYear();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); //取得系统时间的前一天,重点在这里,负数是前几天,正数是后几天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];};//是否春节
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];};

调用方法:

var d1 = new Date();
var d2 = new Date(2019, 1, 5); //注:此处相当于2013年2月9号
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?"是":"不是") + "春节\n\n" ;
}

判断当前时间是否是春节或者除夕【转载修改】相关推荐

  1. 一年中所有节日的排列顺序_【一年中的节日按时间顺序】时间顺序的春节风俗...

    [www.ythhrz.com--节日作文] 春节是中国人民最为传统与最为盛大的节日,每年都有几亿人为了回家过春节,与家人团聚.说到春节风俗,很多人的第一反应应该是拿压岁钱吧,有关于春节的风俗许许多多 ...

  2. JAVA判断当前时间是否为节假日、周末、工作日,简单有效!

    JAVA判断当前时间是否为节假日.周末.工作日 需求 有这么个需求,需要判断传的这个日期是否为节假日,周末,工作日,然后做剩下的操作. 话不多说,上代码 1.首先需要拿到节假日api 节假日API地址 ...

  3. ios中利用NSDateComponents、NSDate、NSCalendar判断当前时间是否在一天的某个时间段内。...

    应用中设置一般会存在这样的设置,如夜间勿扰模式,从8:00-23:00,此时如何判断当前时间是否在该时间段内.难点主要在于如何用NSDate生成一个8:00的时间和23:00的时间,然后用当前的时间跟 ...

  4. java判断当前时间距离第二天凌晨的秒数

    /*** 判断当前时间距离第二天凌晨的秒数** @return 返回值单位为[s:秒]*/public Long getSecondsNextEarlyMorning() {Calendar cal ...

  5. python判断当前时间是否在两个时间之间_Python 判断时间是否在时间区间内的实例...

    判断时间是否在时间区间内 大家都知道 3<4<5这种连等式判断在python中是可行的 >>> 3<4<5 True 那么给定时间是否在时间区间内,也可以用连 ...

  6. 判断当前时间为本月的第几周,本周的第几天

    MainActivity如下: package cc.test;import java.text.SimpleDateFormat; import java.util.Calendar; import ...

  7. 判断当前时间是否是法定节假日或工作日

    判断当前时间是否是法定节假日或工作日 一.介绍 二.实现 一.介绍 采用语言: Java 基于内网下采取配置文件的方式, 来判断当前是否是节假日(包括周末和调休上班日) 如果基于外网取请见 这里 工具 ...

  8. java中,判断当前时间是否处于某个一个时间段内

    今天同事拿了个问题问我,有一个回调工程,会一直查询今日订单表和回调表中的订单数据,然后这条sql今日订单日期是动态的, select * from QYPT_QUERY_GOODS goods,qyp ...

  9. java8判断当前时间是否大于某个时间

    一.日期比较 yyyy-MM-dd 比较日期一般使用LocalDate类 /*** 判断当前日期是否大于某个日期* @param date yyyy-MM-dd* @return*/public st ...

最新文章

  1. windows网络编程第二版 第三章 Internet Protocol 读书笔记
  2. 编译安装C源码程序程序
  3. 一步步编写操作系统81 att内嵌汇编语法
  4. 菜鸟+Hologres=智能物流
  5. Kubernetes基础组件概述
  6. 蚊子132谈IT团队工作的态度和技巧
  7. infopath视图切换
  8. 乐高小颗粒履带机器人_乐高搭建+乐高编程…快带小朋友来漳州这家培训中心,边玩边学...
  9. 菜鸟学Linux 第021篇笔记 特殊权限SUID、FACL、Linux 终端
  10. 简单记录阿里云语音识别API调用方法
  11. selenium.webdriver网页无法正常打开的问题
  12. 东子破解的java设计模式状态模式
  13. Webpack4+Babel7+ES6兼容IE8
  14. acer switch 10 linux,【AcerSwitch10评测】高颜值的2in1电脑 Acer Switch 10评测(全文)_Acer Switch 10_笔记本评测-中关村在线...
  15. 【学习笔记】HTML+CSS模仿静态淘宝首页
  16. phpcms 推荐位获取
  17. 西门子PLC1500大型程序fanuc机器人汽车焊装 包括1台西门子1500PLC程序,2台触摸屏TP1500程序
  18. linux 等待队列
  19. Sql Server 强制大小写区分方法
  20. 吊死人小游戏 1.0版本

热门文章

  1. 计算机开模拟器,iOS在同一台电脑上打开多个模拟器
  2. 线上支付支付宝个人支付接入流程详解
  3. 【镜像复现】开源围棋AI—— ikataGo 快速复现教程
  4. 论DNS地址8.8.8.8和114.114.114.114
  5. JavaFX调用虚拟键盘
  6. 网站判断是否是苹果系统和使用微信浏览器
  7. 2.7 数值分析: 向量的范数
  8. 前端开发的流程与规范
  9. 解决mac BigSur外接显示器发白、发黄、字体发虚 (OpenCore关闭SIP和Read-Only System)
  10. 【转载】CDS view自学系列