VB.NET的阳历与农历转换的算法

这个VB.NET函数实现了1900年至2011年间的日期转换,包括农历到阳历和阳历到农历。通过日期字符串和转换类型作为参数,根据特定的日期数据定义进行计算,处理闰月和非闰月的情况。
摘要由CSDN通过智能技术生成
'下面是一个关于VB的农历算法

    '日期数据定义方法如下

    '前12个字节代表1-12月为大月或是小月,1为大月30天,0为小月29天;

    '第13位为闰月的情况,1为大月30天,0为小月29天;

    '第14位为闰月的月份,如果不是闰月为0,否则给出月份,10、11、12分别用A、B、C来表示,即使用16进制;

    '最后4位为当年家农历新年-即农历1月1日所在公历的日期,如0131代表1月31日。

    Function GetChgDate(ByVal vDate As String, ByVal ChgType As 转换方式) As String

        Dim vvdate() As String = Split(vDate, "-")

 

        If vvdate(0) > 2011 Or vvdate(0) < 1900 Then

            Throw New NotSupportedException("本函数只提供1900年至2011年的日历转换!")

        End If

 

        Dim AddMonth, AddDay, AddYear, getDay, i As Integer

        Dim RunYue As Boolean

        Dim conDate As DateTime

 

        Dim daList(2011) As String

        daList(1900) = "010010110110180131"

        daList(1901) = "010010101110000219"

        daList(1902) = "101001010111000208"

        daList(1903) = "010100100110150129"

        daList(1904) = "110100100110000216"

        daList(1905) = "110110010101000204"

        daList(1906) = "011010101010140125"

        daList(1907) = "010101101010000213"

        daList(1908) = "100110101101000202"

        daList(1909) = "010010101110120122"

        daList(1910) = "010010101110000210"

        daList(1911) = "101001001101160130"

        daList(1912) = "101001001101000218"

        daList(1913) = "110100100101000206"

        daList(1914) = "110101010100150126"

        daList(1915) = "101101010101000214"

        daList(1916) = "010101101010000204" <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值