'Print WDateToEDate(#2/9/2005#)
'农历乙酉年(鸡)正月初一

Function WDateToEDate(ByVal curTime As Date) As String
    Dim WeekName(7), MonthAdd(11), NongliData(99), TianGan(9), DiZhi(11), ShuXiang(11), DayName(30), MonName(12)
    Dim curYear, curMonth, curDay, curWeekday
    Dim GongliStr, WeekdayStr, NongliStr, NongliDayStr
    Dim i, m, n, k, isEnd, bit, TheDate
   
    '星期名
    WeekName(0) = " * "
    WeekName(1) = "星期日"
    WeekName(2) = "星期一"
    WeekName(3) = "星期二"
    WeekName(4) = "星期三"
    WeekName(5) = "星期四"
    WeekName(6) = "星期五"
    WeekName(7) = "星期六"
    '天干名称
    TianGan(0) = "甲"
    TianGan(1) = "乙"
    TianGan(2) = "丙"
    TianGan(3) = "丁"
    TianGan(4) = "戊"
    TianGan(5) = "己"
    TianGan(6) = "庚"
    TianGan(7) = "辛"
    TianGan(8) = "壬"
    TianGan(9) = "癸"
    '地支名称
    DiZhi(0) = "子"
    DiZhi(1) = "丑"
    DiZhi(2) = "寅"
    DiZhi(3) = "卯"
    DiZhi(4) = "辰"
    DiZhi(5) = "巳"
    DiZhi(6) = "午"
    DiZhi(7) = "未"
    DiZhi(8) = "申"
    DiZhi(9) = "酉"
    DiZhi(10) = "戌"
    DiZhi(11) = "亥"
    '属相名称
    ShuXiang(0) = "鼠"
    ShuXiang(1) = "牛"
    ShuXiang(2) = "虎"
    ShuXiang(3) = "兔"
    ShuXiang(4) = "龙"
    ShuXiang(5) = "蛇"
    ShuXiang(6) = "马"
    ShuXiang(7) = "羊"
    ShuXiang(8) = "猴"
    ShuXiang(9) = "鸡"
    ShuXiang(10) = "狗"
    ShuXiang(11) = "猪"
    '农历日期名
    DayName(0) = "*"
    DayName(1) = "初一"
    DayName(2) = "初二"
    DayName(3) = "初三"
    DayName(4) = "初四"
    DayName(5) = "初五"
    DayName(6) = "初六"
    DayName(7) = "初七"
    DayName(8) = "初八"
    DayName(9) = "初九"
    DayName(10) = "初十"
    DayName(11) = "十一"
    DayName(12) = "十二"
    DayName(13) = "十三"
    DayName(14) = "十四"
    DayName(15) = "十五"
    DayName(16) = "十六"
    DayName(17) = "十七"
    DayName(18) = "十八"
    DayName(19) = "十九"
    DayName(20) = "二十"
    DayName(21) = "廿一"
    DayName(22) = "廿二"
    DayName(23) = "廿三"
    DayName(24) = "廿四"
    DayName(25) = "廿五"
    DayName(26) = "廿六"
    DayName(27) = "廿七"
    DayName(28) = "廿八"
    DayName(29) = "廿九"
    DayName(30) = "三十"
    '农历月份名
    MonName(0) = "*"
    MonName(1) = "正"
    MonName(2) = "二"
    MonName(3) = "三"
    MonName(4) = "四"
    MonName(5) = "五"
    MonName(6) = "六"
    MonName(7) = "七"
    MonName(8) = "八"
    MonName(9) = "九"
    MonName(10) = "十"
    MonName(11) = "十一"
    MonName(12) = "腊"
    '公历每月前面的天数
    MonthAdd(0) = 0
    MonthAdd(1) = 31
    MonthAdd(2) = 59
    MonthAdd(3) = 90
    MonthAdd(4) = 120
    MonthAdd(5) = 151
    MonthAdd(6) = 181
    MonthAdd(7) = 212
    MonthAdd(8) = 243
    MonthAdd(9) = 273
    MonthAdd(10) = 304
    MonthAdd(11) = 334
    '农历数据
    NongliData(0) = 2635
    NongliData(1) = 333387
    NongliData(2) = 1701
    NongliData(3) = 1748
    NongliData(4) = 267701
    NongliData(5) = 694
    NongliData(6) = 2391
    NongliData(7) = 133423
    NongliData(8) = 1175
    NongliData(9) = 396438
    NongliData(10) = 3402
    NongliData(11) = 3749
    NongliData(12) = 331177
    NongliData(13) = 1453
    NongliData(14) = 694
    NongliData(15) = 201326
    NongliData(16) = 2350
    NongliData(17) = 465197
    NongliData(18) = 3221
    NongliData(19) = 3402
    NongliData(20) = 400202
    NongliData(21) = 2901
    NongliData(22) = 1386
    NongliData(23) = 267611
    NongliData(24) = 605
    NongliData(25) = 2349
    NongliData(26) = 137515
    NongliData(27) = 2709
    NongliData(28) = 464533
    NongliData(29) = 1738
    NongliData(30) = 2901
    NongliData(31) = 330421
    NongliData(32) = 1242
    NongliData(33) = 2651
    NongliData(34) = 199255
    NongliData(35) = 1323
    NongliData(36) = 529706
    NongliData(37) = 3733
    NongliData(38) = 1706
    NongliData(39) = 398762
    NongliData(40) = 2741
    NongliData(41) = 1206
    NongliData(42) = 267438
    NongliData(43) = 2647
    NongliData(44) = 1318
    NongliData(45) = 204070
    NongliData(46) = 3477
    NongliData(47) = 461653
    NongliData(48) = 1386
    NongliData(49) = 2413
    NongliData(50) = 330077
    NongliData(51) = 1197
    NongliData(52) = 2637
    NongliData(53) = 268877
    NongliData(54) = 3365
    NongliData(55) = 531109
    NongliData(56) = 2900
    NongliData(57) = 2922
    NongliData(58) = 398042
    NongliData(59) = 2395
    NongliData(60) = 1179
    NongliData(61) = 267415
    NongliData(62) = 2635
    NongliData(63) = 661067
    NongliData(64) = 1701
    NongliData(65) = 1748
    NongliData(66) = 398772
    NongliData(67) = 2742
    NongliData(68) = 2391
    NongliData(69) = 330031
    NongliData(70) = 1175
    NongliData(71) = 1611
    NongliData(72) = 200010
    NongliData(73) = 3749
    NongliData(74) = 527717
    NongliData(75) = 1452
    NongliData(76) = 2742
    NongliData(77) = 332397
    NongliData(78) = 2350
    NongliData(79) = 3222
    NongliData(80) = 268949
    NongliData(81) = 3402
    NongliData(82) = 3493
    NongliData(83) = 133973
    NongliData(84) = 1386
    NongliData(85) = 464219
    NongliData(86) = 605
    NongliData(87) = 2349
    NongliData(88) = 334123
    NongliData(89) = 2709
    NongliData(90) = 2890
    NongliData(91) = 267946
    NongliData(92) = 2773
    NongliData(93) = 592565
    NongliData(94) = 1210
    NongliData(95) = 2651
    NongliData(96) = 395863
    NongliData(97) = 1323
    NongliData(98) = 2707
    NongliData(99) = 265877
    '生成当前公历年、月、日 ==> GongliStr
    curYear = Year(curTime)
    curMonth = Month(curTime)
    curDay = Day(curTime)
    GongliStr = curYear & "年"
    If (curMonth < 10) Then
        GongliStr = GongliStr & "0" & curMonth & "月"
    Else
        GongliStr = GongliStr & curMonth & "月"
    End If
    If (curDay < 10) Then
        GongliStr = GongliStr & "0" & curDay & "日"
    Else
        GongliStr = GongliStr & curDay & "日"
    End If
    '生成当前公历星期 ==> WeekdayStr
    curWeekday = Weekday(curTime)
    WeekdayStr = WeekName(curWeekday)
    '计算到初始时间1921年2月8日的天数:1921-2-8(正月初一)
    TheDate = (curYear - 1921) * 365 + Int((curYear - 1921) / 4) + curDay + MonthAdd(curMonth - 1) - 38
    If ((curYear Mod 4) = 0 And curMonth > 2) Then
        TheDate = TheDate + 1
    End If
    '计算农历天干、地支、月、日
    isEnd = 0
    m = 0
    Do
        If (NongliData(m) < 4095) Then
            k = 11
        Else
            k = 12
        End If
        n = k
        Do
            If (n < 0) Then
                Exit Do
            End If
            '获取NongliData(m)的第n个二进制位的值
            bit = NongliData(m)
            For i = 1 To n Step 1
                bit = Int(bit / 2)
            Next
            bit = bit Mod 2
            If (TheDate <= 29 + bit) Then
                isEnd = 1
                Exit Do
            End If
            TheDate = TheDate - 29 - bit
            n = n - 1
        Loop
        If (isEnd = 1) Then
            Exit Do
        End If
        m = m + 1
    Loop
    curYear = 1921 + m
    curMonth = k - n + 1
    curDay = TheDate
    If (k = 12) Then
        If (curMonth = (Int(NongliData(m) / 65536) + 1)) Then
            curMonth = 1 - curMonth
        ElseIf (curMonth > (Int(NongliData(m) / 65536) + 1)) Then
            curMonth = curMonth - 1
        End If
    End If
    '生成农历天干、地支、属相 ==> NongliStr
    NongliStr = "农历" & TianGan(((curYear - 4) Mod 60) Mod 10) & DiZhi(((curYear - 4) Mod 60) Mod 12) & "年"
    NongliStr = NongliStr & "(" & ShuXiang(((curYear - 4) Mod 60) Mod 12) & ")"
    '生成农历月、日 ==> NongliDayStr
    If (curMonth < 1) Then
        NongliDayStr = "闰" & MonName(-1 * curMonth)
    Else
        NongliDayStr = MonName(curMonth)
    End If
    NongliDayStr = NongliDayStr & "月"
    NongliDayStr = NongliDayStr & DayName(curDay)
    WDateToEDate = NongliStr & NongliDayStr
End Function

公历转换成农历的函数相关推荐

  1. php 转为文本,php html转换成text文本函数

    php html转换成text文本函数 文章为各位提供一个哦,如果喜欢就行了. if(!defined('DEDEINC')) { exit("Request Error!"); ...

  2. java 当前时间 转换成 农历(阴历)时间

    package util;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Ca ...

  3. 小写金额转换成大写金额的函数

    编写一个收费软件时要用到一个小写金额转换成大写金额的函数,我曾在网上找到一个用Powerbuilder写的函数,长达四五十行之巨,后来我自己用DELPHI写了一个函数,寥寥几行代码就搞定: funct ...

  4. C语言中把小写字符串转换成大写用函数,一个容易的将小写字符串转换成大写的函数...

    一个简单的将小写字符串转换成大写的函数 我用的是VC++6.0,恳请大家帮忙看看到底哪里出错了. #include void uppers(char *Dest,char *Sour) { while ...

  5. php 当前时间转换成农历,php如何实现公、农历日期的想互转换的实例

    这篇文章主要介绍了PHP 实现公历日期与农历日期的互转换的相关资料,希望通过本文大家能帮助到大家,需要的朋友可以参考下 PHP 实现公历日期与农历日期的互转换 前言: 今天根据客户的需求对时间进行了转 ...

  6. 转换8421码的程序c语言,16进制数转换成8421BCD编码函数

    .INCLUDE hardware.inc .IRAM _Led_Out: .dw 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 _L ...

  7. 栅格矩阵转换成邻接矩阵G2D函数

    在使用栅格法进行移动机器人路径规划时,需要将机器人工作的环境地图-栅格矩阵,转换成邻接矩阵,这里介绍一下栅格地图转换成邻接矩阵的具体函数方法. 在栅格地图中,每一个栅格相当于一个节点:而在一条路径中, ...

  8. oracle 取农历函数,Oracle中如何将日期转换成农历

    CREATE TABLE SolarData ( YearID INTEGER NOT NULL, -- 农历年 DATA CHAR(7) NOT NULL, -- 农历年对应的16进制数 DataI ...

  9. centos mysql lujin_MySQL中文转换成拼音的函数[zt]

    注:如果创建函数出错,试试这个 set global log_bin_trust_function_creators=TRUE; 代码如下 -- 创建汉字拼音对照临时表 CREATE TABLE IF ...

最新文章

  1. 传文件进云服务器,传文件进云服务器
  2. Excel 中如何找出两列数据中不重复的记录
  3. Serverless 的喧哗与骚动(一)附Serverless行业发展回顾
  4. 静态编译qemu_使用QEMU chroot进行固件本地调试
  5. 决策树和随机森林(下)
  6. pythontemp_python 临时文件夹 的 tempfile模块学习
  7. java的学习步骤方法书籍大总结
  8. 前端小白,如何快速提升自己?了解3点,找工作不用愁
  9. [转载] python - map()解析
  10. python正则表达式思考_PYTHON 爬虫笔记四:正则表达式基础用法
  11. python类基础知识
  12. VMware基础架构和运营管理
  13. SharpGL学习笔记(十二) 光源例子:解决光源场景中的常见问题
  14. 【SSL】2021-08-18 1286.恶作剧
  15. Telco Customer Churn(电信客户流失相关数据集)
  16. 微信 存储目录 计算机,电脑微信文件夹保存位置
  17. python计算2019年新个税
  18. 基础(四)之java后端根据经纬度获取地址
  19. echarts从全国地图切换成省级地图地图不居中的问题
  20. 数据分析岗位面试准备请看这篇!

热门文章

  1. ,实则非常坚硬。岩石表面像被精心打磨
  2. 金仓数据库KingbaseES使用ksql连接时,密码含有特殊字符时报错认证失败
  3. [BIM族库]BIM常用软件介绍
  4. 如何借助游戏联运平台创业?
  5. 【无标题】利用ASCII码表使身份证男女信息打印出来
  6. 定位系统必须要安装定位基站吗
  7. 千锋逆战之旅之简述Javascript浏览器对象模型(BOM)
  8. 【面试软技巧】如果你的同事不合作,如何推进项目进度
  9. linux 利用Google身份验证器配置ssh完成双重登录验证
  10. 【智慧城市】时空云+空间规划,开启“智慧徐圩”新篇章