let today = new Date()
function InitArray () {
this.length = arguments.length
for (let i = 0; i < this.length; i++) this[i + 1] = arguments[i]
}
let dateString = ''
let d = new InitArray('星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六')
dateString += (today.getFullYear() + '年' + (today.getMonth() + 1) + '月' + today.getDate() + '日 ' + d[today.getDay() + 1] + ' ')
let calendar = new Date()
let month = calendar.getMonth() + 1
let date = calendar.getDate()
if ((month === 1) && (date === 1)) dateString += '元旦'
if ((month === 3) && (date === 12)) dateString += '植树节'
if ((month === 4) && (date === 5)) dateString += '清明节'
if ((month === 5) && (date === 1)) dateString += '国际劳动节'
if ((month === 5) && (date === 4)) dateString += '青年节'
if ((month === 6) && (date === 1)) dateString += '国际儿童节'
if ((month === 8) && (date === 1)) dateString += '建军节'
if ((month === 8) && (date === 16)) dateString += '七夕情人节'
if ((month === 10) && (date === 1)) dateString += '国庆节/国际音乐节/国际老人节'
if ((month === 12) && (date === 24)) dateString += '平安夜'
if ((month === 12) && (date === 25)) dateString += '圣诞节'
/* 农历部分 */
let CalendarData = new Array(100)
let madd = new Array(12)
let tgString = '甲乙丙丁戊己庚辛壬癸'
let dzString = '子丑寅卯辰巳午未申酉戌亥'
let numString = '一二三四五六七八九十'
let monString = '正二三四五六七八九十冬腊'
// let weekString = '日一二三四五六'
let sx = '鼠牛虎兔龙蛇马羊猴鸡狗猪'
let cYear, cMonth, cDay, TheDate
CalendarData = ['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])
let total, m, n, k
let isEnd = false
let 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 () {
let 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()
}
}
let D = new Date()
let yy = D.getFullYear()
let mm = D.getMonth() + 1
let dd = D.getDate()
// let ww = D.getDay()
// let ss = parseInt(D.getTime() / 1000)
if (yy < 100) yy = '19' + yy
const showCalendar = function () {
dateString += GetLunarDay(yy, mm, dd)
return dateString
}
export default showCalendar

转载于:https://www.cnblogs.com/zhoudawei/p/9246132.html

获取当前时间,包括农历时间相关推荐

  1. JAVASCRIPT 取得当前时间,包括农历时间 时间格式:2011年11月8日 16:54 星期二 农历辛卯年(兔) 十月十三 申时...

    JAVASCRIPT 取得当前时间,包括农历时间 时间格式:2011年11月8日 16:54 星期二 农历辛卯年(兔) 十月十三 申时 写成了一个Js包(附件里)里了,直接调用函数就行 测试代码: & ...

  2. vue项目中显示当前时间的农历时间

    npm安装 npm install --save chinese-lunar-calendar 用法: <div>农历:{{getLunarDay.dateStr}}</div> ...

  3. Windows API的时间结构体、时间转换及时间获取

    Windows API的时间结构体.时间转换及时间获取   时间格式:DosDateTime <====>FileTime <====> SystemTime |        ...

  4. http/https监控获取响应时间(DNS解析时间,RRT时间,服务器处理时间等)

    有时候为了测试网络情况,需要返回每个阶段的耗时时间,比如DNS解析耗时,建立连接所消耗的时间,从建立连接到准备传输所使用的时间,从建立连接到传输开始所使用的时间,整个过程耗时,下载的数据量,下载速度, ...

  5. [WinAPI] API 14 [获取、设置文件属性和时间]

    >_< 为了获取文件属性,用户可以使用GetFileAttributes与GetFileAttributesEx函数. GetFileAttributesEx函数除了返回文件属性外,还返回 ...

  6. c++ linux 获取毫秒_Linux c++获取本地毫秒级精确时间

    时间函数介绍 Linux c/c++中提供了很多操作时间的库函数,这里简要介绍. 使用头文件 #include 常用的时间函数包括以下: time 原型:time_t time(time_t *t); ...

  7. 如何在Python中获取文件创建和修改日期/时间?

    我有一个脚本,该脚本需要根据文件创建和修改日期执行一些操作,但必须在Linux和Windows上运行. 在Python中获取文件创建和修改日期/时间的最佳跨平台方法是什么? #1楼 最好的功能是os. ...

  8. 计算机获取的系统时间是什么时间格式,【excle怎样获取当前日期格式】如何在EXCEL中显示当天的日期和时间?...

    Excel中,如何用函数获取当前日期(即系统日期)的月份值? 个=month(today()). 当月=month(today()),当日=day(today()). =TODAY()获得当前日期,形 ...

  9. android获取一天的毫秒时间,Android关于获取时间的记录(小结)

    序 初涉江湖,还望海涵! 写点东西,纯粹是因为个人的记忆能力较弱,写些笔记罢了,若有错误还望雅正! 对Android中的时间获取做个记录,以下为结果! 代码粘贴 public class MainAc ...

  10. 关于utc时间与格林威治时间(linux上获取系统时区及代码)

    关于utc时间与格林威治时间 协调世界时,又称世界统一时间,世界标准时间,国际协调时间,简称UTC.它从英文"Coordinated Universal Time"/法文" ...

最新文章

  1. 【 MATLAB 】信号处理工具箱之波形产生函数 gauspuls
  2. Javascript模块化编程
  3. ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password‘ cannot be loaded
  4. C#高性能大容量SOCKET并发(十一):编写上传客户端
  5. centos利用nexus搭建局域网docker私有仓库
  6. 《剑指Offer》 二叉树的深度
  7. [转]如何写一份交互说明文档
  8. 题解 luogu P6002 【[USACO20JAN]Berry Picking S】
  9. tensorflow keras 构建神经网络、Alex net、VGG、CNN网络
  10. shell以分号结尾_linux shell 各种分号,括号使用方法总结
  11. z世代中的z是什么意思_开放是与Z世代合作的关键
  12. Firfox的炫酷名字怎么来,各位,好不好奇~!
  13. B360主板i5 8400装Win7记录
  14. 技术书写作你要知道的几件事
  15. HITCS_大作业_程序人生-Hello’s P2P
  16. apk瘦身 提高优化效果
  17. C语言中extern的作用
  18. 阿里外包月薪3800,我干了8个月啦。
  19. postek二次开发_各类标签一机打尽 博思得C168条码机热促
  20. 使用POI实现读取Excel数据并生成柱状图、折线图、饼状图的工具类

热门文章

  1. 益盟操盘手编译的指标破解
  2. iOS深拷贝和浅拷贝
  3. 详细教程-阿里网盘部署本机
  4. 专访:6位飞桨开发者的「新生代」AI创新故事!
  5. 「数据架构」什么是实体关系图(ERD)?
  6. 一年工作经验,两周的面试,拿到几个offer的面试经验总结
  7. 「转」新手淘宝天猫小卖家开店,如何做好全盘运营?
  8. Java小白之编写:计算个税的程序
  9. MySQL实战系列3:视图、存储过程、函数、索引全解析
  10. Lambda表达式的练习1