VBA调用:MsgBox Gong2Lunar("1981-08-26")

公式调用=Gong2Lunar("1981-08-26")

Public Function Gong2Lunar(Optional Gong As Date) As StringDim MonthAdd(11), NongliData(99), TianGan(9), DiZhi(11), ShuXiang(11)Dim curTime, curYear, curMonth, curDayDim GongliStr, NongliStr, NongliDayStrDim i, m, n, k, isEnd, bit, TheDate'获取当前系统时间curTime = Gong'公历每月前面的天数MonthAdd(0) = 0MonthAdd(1) = 31MonthAdd(2) = 59MonthAdd(3) = 90MonthAdd(4) = 120MonthAdd(5) = 151MonthAdd(6) = 181MonthAdd(7) = 212MonthAdd(8) = 243MonthAdd(9) = 273MonthAdd(10) = 304MonthAdd(11) = 334'农历数据NongliData(0) = 2635NongliData(1) = 333387NongliData(2) = 1701NongliData(3) = 1748NongliData(4) = 267701NongliData(5) = 694NongliData(6) = 2391NongliData(7) = 133423NongliData(8) = 1175NongliData(9) = 396438NongliData(10) = 3402NongliData(11) = 3749NongliData(12) = 331177NongliData(13) = 1453NongliData(14) = 694NongliData(15) = 201326NongliData(16) = 2350NongliData(17) = 465197NongliData(18) = 3221NongliData(19) = 3402NongliData(20) = 400202NongliData(21) = 2901NongliData(22) = 1386NongliData(23) = 267611NongliData(24) = 605NongliData(25) = 2349NongliData(26) = 137515NongliData(27) = 2709NongliData(28) = 464533NongliData(29) = 1738NongliData(30) = 2901NongliData(31) = 330421NongliData(32) = 1242NongliData(33) = 2651NongliData(34) = 199255NongliData(35) = 1323NongliData(36) = 529706NongliData(37) = 3733NongliData(38) = 1706NongliData(39) = 398762NongliData(40) = 2741NongliData(41) = 1206NongliData(42) = 267438NongliData(43) = 2647NongliData(44) = 1318NongliData(45) = 204070NongliData(46) = 3477NongliData(47) = 461653NongliData(48) = 1386NongliData(49) = 2413NongliData(50) = 330077NongliData(51) = 1197NongliData(52) = 2637NongliData(53) = 268877NongliData(54) = 3365NongliData(55) = 531109NongliData(56) = 2900NongliData(57) = 2922NongliData(58) = 398042NongliData(59) = 2395NongliData(60) = 1179NongliData(61) = 267415NongliData(62) = 2635NongliData(63) = 661067NongliData(64) = 1701NongliData(65) = 1748NongliData(66) = 398772NongliData(67) = 2742NongliData(68) = 2391NongliData(69) = 330031NongliData(70) = 1175NongliData(71) = 1611NongliData(72) = 200010NongliData(73) = 3749NongliData(74) = 527717NongliData(75) = 1452NongliData(76) = 2742NongliData(77) = 332397NongliData(78) = 2350NongliData(79) = 3222NongliData(80) = 268949NongliData(81) = 3402NongliData(82) = 3493NongliData(83) = 133973NongliData(84) = 1386NongliData(85) = 464219NongliData(86) = 605NongliData(87) = 2349NongliData(88) = 334123NongliData(89) = 2709NongliData(90) = 2890NongliData(91) = 267946NongliData(92) = 2773NongliData(93) = 592565NongliData(94) = 1210NongliData(95) = 2651NongliData(96) = 395863NongliData(97) = 1323NongliData(98) = 2707NongliData(99) = 265877'生成当前公历年、月、日 ==> GongliStrcurYear = Year(curTime)curMonth = Month(curTime)curDay = Day(curTime)GongliStr = curYear & "年"If (curMonth < 10) ThenGongliStr = GongliStr & "0" & curMonth & "月"ElseGongliStr = GongliStr & curMonth & "月"End IfIf (curDay < 10) ThenGongliStr = GongliStr & "0" & curDay & "日"ElseGongliStr = GongliStr & curDay & "日"End If'计算到初始时间1921年2月8日的天数:1921-2-8(正月初一)TheDate = (curYear - 1921) * 365 + Int((curYear - 1921) / 4) + curDay + MonthAdd(curMonth - 1) - 38If ((curYear Mod 4) = 0 And curMonth > 2) ThenTheDate = TheDate + 1End If'计算农历天干、地支、月、日isEnd = 0m = 0DoIf (NongliData(m) < 4095) Thenk = 11Elsek = 12End Ifn = kDoIf (n < 0) ThenExit DoEnd If'获取NongliData(m)的第n个二进制位的值bit = NongliData(m)For i = 1 To n Step 1bit = Int(bit / 2)Nextbit = bit Mod 2If (TheDate <= 29 + bit) ThenisEnd = 1Exit DoEnd IfTheDate = TheDate - 29 - bitn = n - 1LoopIf (isEnd = 1) ThenExit DoEnd Ifm = m + 1LoopcurYear = 1921 + mcurMonth = k - n + 1curDay = TheDateIf (k = 12) ThenIf (curMonth = (Int(NongliData(m) / 65536) + 1)) ThencurMonth = 1 - curMonthElseIf (curMonth > (Int(NongliData(m) / 65536) + 1)) ThencurMonth = curMonth - 1End IfEnd IfcurMonth = Abs(curMonth)Gong2Lunar = curYear & "-" & IIf(curMonth < 10, "0", "") & curMonth & "-" & IIf(curDay < 10, "0", "") & curDay
End Function

EXCEL-VBA函数:公历转农历,返回格式YYYY-MM-DD相关推荐

  1. 将字符串格式yyyy/MM/dd的字符串转为日期,格式“yyyy-MM-dd“

    将字符串格式yyyy/MM/dd的字符串转为日期,格式"yyyy-MM-dd" public static String strToDateFormat(String date) ...

  2. 小程序ios时间格式 yyyy/MM/dd

    小程序选用f2-canvas画图表, 横坐标是时间. 实际上线后,发现android上是好的,但是iphone上显示不对,后来发现是时间格式问题,ios不识别yyyy-MM-dd, 要转换成yyyy/ ...

  3. js获取当前时间格式YYYY/MM/DD

    //获取当前时间,格式YYYY-MM-DD function getNowFormatDate() {var date = new Date();var seperator1 = "/&qu ...

  4. 年月日格式判断-正则表达式 YYYY/MM/DD、YYYY/MM/DD| YY/MM/DD、 ^(^(\d{4}|\d{2})(\-|\/|\.)\d{1,2}\3\d{1,2}$)|(^\d{4}…

    一.简单的日期判断(YYYY/MM/DD): ^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$ 二.演化的日期判断(YYYY/MM/DD| YY/MM/DD): ^(^(\d{4}| ...

  5. 得到 yyyy/mm/dd 格式时间

    在做项目的时候:很多文件都是按数据添加时间的年/月/日的目录保存 做的时候发现不能直接 DateTime(yyyy-mm-dd).ToString("yyyy/MM/dd")得到 ...

  6. Python写,将输入的yyyy/mm/dd格式的日期显示为yyyy年mm月dd日。

    7.(程序题)编程将输入的yyyy/mm/dd格式的日期显示为yyyy年mm月dd日. str = input("请输入日期:") length=len(str) if str[6 ...

  7. vue3时间格式转换为yyyy/mm/dd,yyyy-MM-dd,yyyy-MM-dd hh:mm:ss,hh:mm,yyyy-MM-ddThh:mm:ss+08:00

    时间格式转换为yyyy/mm/dd export const dateFormat1 = (time = new Date().getTime()) => { //YYYY/MM/DDconst ...

  8. Excel VBA参考文献中人名与年份格式转换

    一.用途 将Excel中含有人名与年份的字符串转换为指定格式.要求输入格式中作者的姓必须大于1个字符,名必须为1个字符. [案例]某不规则的参考文献字符串 Wang, H X, Ng, T B, 20 ...

  9. PYTHON 调用EXCEL VBA 函数:使用win32com模块

    import win32com.clientdef excel_VBA():xls=win32com.client.Dispatch('Excel.Application')xls.Workbooks ...

  10. spring boot + vue 前后端分离时间戳转换为 yyyy:MM:dd HH:mm:ss格式

    后端 1.model(entity)注释直接转换 当返回类型为resultMap,在entity类里面相应属性上加上以下注释 @JsonFormat(pattern="yyyy-MM-dd ...

最新文章

  1. 百度发布智能小程序:“开放+AI”是最大特色
  2. Centos下搭建ftp服务器
  3. ubuntu获取程序的帮助_如何在Raspberry Pi树莓派上安装Ubuntu
  4. 强化学习在出行行业的应用等
  5. Linux X Window 与命令行的切换
  6. 用Python自动生成NBA巨星生涯数据曲线
  7. 最大化窗口快捷键_ubuntu Gnome快捷键
  8. C#调用非托管代码(C++方法)的2种方式
  9. linux_grep操作
  10. 客户端与服务站《Socket》
  11. 建立云服务器_中国云游戏元年 顺网科技跻身头号玩家队列
  12. 手机怎么看mkv格式视频 如何将mkv无损转换成mp4格式
  13. linux vi脚本,用VIM编写脚本
  14. 【Spark】(task4)SparkML基础(数据编码)
  15. 监控工具Zabbix之原理及部署
  16. 小功率机械无级变速器结构设计
  17. chrome最新版去掉书签栏上应用和还原默认页的方法
  18. (一)自学java必备技能开头篇:下载哔哩哔哩文件改名
  19. 【随笔】方波的表示、转换与应用
  20. HCIA笔记-----第二天

热门文章

  1. 画活动图教程_怎么用sai画出干净的线稿?超详细的sai动漫线稿教程
  2. 迅雷对非会员进行下载限速的解决方案
  3. python——numpy——roll()函数
  4. Win10下Matlab r2018a 64位 中文破解版的安装以及破解方法
  5. java tcp连接硬件_SocketTool工具(模拟开发板)和基于socket的java服务器(TCP/IP协议)开发...
  6. 迅雷赚钱宝变砖TTL修复教程赚钱宝刷机
  7. 繁星屠龙软件下载_繁星抢币有什么要求 - 天津政务网
  8. 北京理工大学小学期乐学 t23树上统计
  9. Java Web 前端页面 模板源码
  10. mcgs组态软件中字体如果从左到右变化_MCGS组态软件课件-第5章.ppt