当前位置: 首页 > news >正文

JS获取阴历阳历和星期

获取当前阳历日期时间,阴历日期和星期,三者分开,可自行调整顺序。

 新建JS文件getdates.js,代码如下:
/*获取当前阳历日期*/
function getCurrentDateTime () {
var d = new Date();
var year = d.getFullYear();
var month = d.getMonth() + 1;
var date = d.getDate();
/*时分秒*/
/**********************
var hours = d.getHours();
var minutes = d.getMinutes();
var seconds = d.getSeconds();
var ms = d.getMilliseconds();
**************************/
var curDateTime = year;
if (month > 9)
curDateTime = curDateTime + "年" + month;
else
curDateTime = curDateTime + "年0" + month;
if (date > 9)
curDateTime = curDateTime + "月" + date + "日";
else
curDateTime = curDateTime + "月0" + date + "日";
/**********************************
if (hours > 9)
curDateTime = curDateTime + " " + hours;
else
curDateTime = curDateTime + " 0" + hours;
if (minutes > 9)
curDateTime = curDateTime + ":" + minutes;
else
curDateTime = curDateTime + ":0" + minutes;
if (seconds > 9)
curDateTime = curDateTime + ":" + seconds;
else
curDateTime = curDateTime + ":0" + seconds;
***************************************/
curDateTime = curDateTime + " ";
return curDateTime;
}

/*获取当前是星期几*/
function showWeek () {
var show_week = new Array('星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日');
var time = new Date();
var day = time.getDay();
var now_week = show_week[day - 1] + ' ';
return now_week;
}

/*获取当前农历日期*/
function showCal () {
var D = new Date();
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);
}

//定义全局变量
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();
}
}

/*显示*/
$(function () {
var date = getCurrentDateTime();
var week = showWeek();
var calendar = showCal();
$("#currentDate").text("欢迎您!" + date + "(农历 " + calendar + ")" + week);
});


在HTML中引用JS文件:<script src="js/getdates.js"></script>
然后在要显示日期的容器中添加    id=“ currentDate”   即可在<span></span>中间显示日期信息,
如<span  id="currentDate"> </span>

转载于:https://www.cnblogs.com/Man-Dream-Necessary/p/4858704.html

相关文章:

  • LCA UESTC 92 Journey
  • jquery cookie
  • Android调用系统相机拍照保存照片很小解决方案
  • Caching with Instance Variables 缓存与实例变量
  • jsf初学解决faces 中文输入乱码问题
  • Java随机数生成原理
  • jvm参数详解,内存泄露解决
  • HDU 2815 Mod Tree 离散对数 扩张Baby Step Giant Step算法
  • centos 7 修改默认运行级别
  • Python之继承
  • hbase学习笔记1——脚本简单总结
  • 第四次作业——个人作业——软件案例分析
  • iOS小技巧之UIImagePickerController实现头像选择
  • 批量添加tiptop账号(批量添加Linux账号)
  • layer官方演示与讲解(jQuery弹出层插件)
  • 【node学习】协程
  • ES6 ...操作符
  • JavaScript创建对象的四种方式
  • Java编程基础24——递归练习
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • oldjun 检测网站的经验
  • 分类模型——Logistics Regression
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 力扣(LeetCode)965
  • 使用putty远程连接linux
  • 移动端 h5开发相关内容总结(三)
  • 译有关态射的一切
  • k8s使用glusterfs实现动态持久化存储
  • $refs 、$nextTic、动态组件、name的使用
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (12)Hive调优——count distinct去重优化
  • (20050108)又读《平凡的世界》
  • (3)nginx 配置(nginx.conf)
  • (day 12)JavaScript学习笔记(数组3)
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (转)scrum常见工具列表
  • (转)Unity3DUnity3D在android下调试
  • (转)详解PHP处理密码的几种方式
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .NET Remoting学习笔记(三)信道
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET 解决重复提交问题
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .net反混淆脱壳工具de4dot的使用
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • @ConfigurationProperties注解对数据的自动封装
  • @EnableConfigurationProperties注解使用
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945
  • [2024最新教程]地表最强AGI:Claude 3注册账号/登录账号/访问方法,小白教程包教包会
  • [BUUCTF]-PWN:wustctf2020_number_game解析(补码,整数漏洞)
  • [BZOJ 1032][JSOI2007]祖码Zuma(区间Dp)