1. 程式人生 > >1900-2100公曆年以查表方式取農曆二十四節氣(VBA)

1900-2100公曆年以查表方式取農曆二十四節氣(VBA)

在前兩天,發了一段農曆轉公曆的程式碼,今天再把獲取二十四節氣的程式碼給完成了。

前提:

    農曆二十節氣,以地球繞太陽公轉軌跡,以15度均勻分割,在1900~2100這個時間段,有以下規律:

    1.每公曆月份,都有兩個節氣,分別在月首及月尾

    2.每個節氣在月內與基準日期相差的天數為0-3天

    3.在1900~2100這201年,節氣的分佈種類共有69種

以上是由資料總結出來的,可以由此生成程式設計所需的資料,如下:(注:本資料由來源地址的程式碼中轉換而來)

    ' 二十四節氣在各月的基準日期
    solarTermBase = Array(4, 19, 3, 18, 4, 19, 4, 19, 4, 20, 4, 20, 6, 22, 6, 22, 6, 22, 7, 22, 6, 21, 6, 21)
    
    ' 二十四節氣以年為單位,在1900-2100年間,共有69種分佈種類,一個長整型儲存12個節氣與基準日的天數差額,共2*69項(每2bit表示一個節氣的天數差,0-3天,高8位置0)
    solarTermOS = Array( _
        &H95A59A, &H599AA5, &HA5A6AA, &H9AAAA9, &HA9AAAE, &HAAAAAA, &HAAFAEE, &HAEEAAA, &HEAA59A, &H599AA5, &HA9AAAA, &HAAAAAA, &HEAA59A, &H599A95, &H95A6AA, &H9A9AA9, _
        &HA5A6AA, &HAAAAAA, &HAABAAE, &HAAEAAA, &HAAA59A, &H599695, &H95A69A, &H9A9AA9, &HA5A6AA, &HAAAAA9, &H95A59A, &H9A9AA5, &HA9AAAE, &HAAEAAA, &HAAA59A, &H599555, _
        &HAAA599, &H599555, &HAAA559, &H599555, &H95A59A, &H599695, &HAA6559, &H559555, &H55A59A, &H599695, &H95A59A, &H9A9AA9, &HAA5559, &H559555, &HA95559, &H555555, _
        &H55A599, &H599555, &HA95555, &H555555, &H55A559, &H599555, &HA5A6AA, &H9A9AA9, &HA95155, &H555555, &H55A559, &H559555, &H95A59A, &H5996A5, &HA55155, &H455555, _
        &H556559, &H559555, &H95A59A, &H5A9AA5, &HA55155, &H455554, &H555559, &H555555, &H55A599, &H599695, &H545559, &H555555, &H545555, &H595555, &H545555, &H555555, _
        &HA55155, &H454554, &H545155, &H555555, &HA55145, &H454554, &H545155, &H455555, &H955045, &H454554, &H505155, &H455555, &H955045, &H44554, &H505155, &H455554, _
        &H955045, &H44550, &H505145, &H454554, &H955045, &H44150, &H505045, &H454554, &H955044, &H44140, &H405045, &H44554, &H555044, &H44140, &H555555, &H555555, _
        &H405045, &H44550, &H555044, &H44000, &H555004, &H4000&, &H405045, &H44150, &H505045, &H54554, &H405044, &H44140, &H505045, &H44554, &H550004, &H0&, _
        &H5044&, &H44140, &H550000, &H0&, &H5044&, &H44000, &H540000, &H0&, &H5044&, &H4000&)
    
    ' 1900-2100各年的二十四節氣分佈種類,對應上表中的序號,一個長整型儲存4年序號,每8bit一個序號(序號=0-68)
    solarTermIdx = Array( _
        &H10203, &H4010503, &H4010503, &H6070809, &HA0B0C09, &HA0D0C0E, &HA0D010E, &HF000102, &H10000105, &H10000105, _
        &H10000105, &H11120708, &H13141508, &H13140D01, &H16140001, &H17180001, &H17180001, &H19180001, &H191A001B, &H1C1D1E0B, _
        &H1C1D1215, &H1F201421, &H22232400, &H22251800, &H22261800, &H22271800, &H22271D00, &H28291D1E, &H2A2B1D12, &H2C2D2024, _
        &H2E2F2324, &H302F2718, &H302F2718, &H302F271D, &H302F271D, &H3031291D, &H32332B1D, &H34352D23, &H36352D37, &H36382F37, _
        &H39382F27, &H39382F27, &H3A383127, &H3A3B312B, &H3A3B3C2B, &H3A3D3E2D, &H3F40352D, &H4140382F, &H4142382F, &H4344382F, _
        &H27000000)

有了資料後,編碼是非常簡單的,只要由年份確定該年的二十節氣分佈種類,是69種裡面的哪一種(查表方式),取出分佈種類的定義資訊後,再取某節氣的偏差天數。最終返回 基準天數 + 偏差天數 即可。

程式碼比較簡單,不再作詳解(在參考程式碼裡,用JS實現的程式碼,本函式只有一句程式碼)

附示例程式碼(在上次的程式碼基礎上,加了公曆轉農曆的方法,但請注意,目前尚未處理公曆1900/1/1~農曆1900/1/1之間的資料,因為參考程式碼中,資訊表中未包含這段資訊):

農曆日期資料型別定義:

Option Explicit

Type LunarDate
    year As Long                '農曆年份(西曆紀年1900-2100)
    month As Integer            '農曆月份(1-12)
    day As Integer              '農曆日期(1-30)
    isLeap As Boolean           '是否為閏月年(True=有閏月  Flas=無閏月)
    solarIndex As Integer       '二十四節氣(0-24) 0=當日沒有節氣
End Type


'
'根據農曆年月日取對應公曆日期 類模組
'                                    (By 漠石 [email protected])
'
'  本類只有一個公用方法:
'    Public Function GetDateFromLunar(y As Long, m As Long, d As Long, Optional isLeap As Boolean = False) As Date
'    y: 1900 - 2100 200年
'    m: 1 - 12 月份
'    d: 1 - 30,如果是小月,並且傳入了30,則返回下一農曆月第一天的公曆
'    isLeap: 是否為閏月
'
'==========================================================================================
'  注:本模組的資料及程式碼參照自:http://s.o4u.com/host/blog/calendar/calendar.htm
'      以下為原作者資訊:
'        ***************************************
'         農曆月曆&世界時間 DHTML 程式 (臺灣版)
'        ***************************************
'             最後修改: 2009 年 3 月 20 日
'
'
'如果您覺得這個程式不錯,您可以自由轉寄給親朋好友分享。自由使
'用範圍: 學校、學會、公會、公司內部、程式研究、個人網站供人查
'詢使用?
'
'Open Source 不代表放棄著作權,任何形式之引用或轉載前請來信告
'知。如需於「商業或營利」目的中使用此部份之程式碼或資料,需取
'得本人書面授權。
'
'最新版本與更新資訊於 http://sean.o4u.com/ap/calendar/ 公佈
'
'
'                             歡迎來信互相討論研究與指正誤謬
'                     連絡方式:http://sean.o4u.com/contact/
'                                          Sean Lin(林洵賢)
'                          尊重他人創作?請勿刪除或變更此說明



Option Explicit

Private compressLunarInfo As Variant
Private solarTermBase As Variant, solarTermOS As Variant, solarTermIdx As Variant
Private dateOfLunarYearBegin() As Date

Private Const LUNAR_YEAR_START As Long = 1900
Private Const LUNAR_YEAR_END As Long = 2100
Private Const FL_M As Integer = 1
Private Const FL_D As Integer = 31


'#### 根據農曆年月日返回公曆日期
Public Function GetGregorian(ByVal y As Long, ByVal m As Long, ByVal d As Long, Optional ByVal isLeap As Boolean = False) As Date
    Dim sum As Long, leapMonth As Integer
    
    If y < LUNAR_YEAR_START Or y > LUNAR_YEAR_END Then
        Err.Raise Number:=6, DESCRIPTION:="只接受 " & LUNAR_YEAR_START & " - " & LUNAR_YEAR_END & " 之間的年份"
        Exit Function
    End If
    
    If m < 1 Or m > 12 Then
        Err.Raise Number:=7, DESCRIPTION:="只接受 1 - 12 之間的月份"
        Exit Function
    End If
    
    If d < 1 Or d > 30 Then
        Err.Raise Number:=8, DESCRIPTION:="只接受 1 - 30 之間的日期"
        Exit Function
    End If
    
    If Not isLeap Then
        sum = GetMultiLunarMonthDays(y, m - 1) + d - 1
    Else
        leapMonth = GetLeapMonth(y)
        If leapMonth <> m Then
            Err.Raise Number:=9, DESCRIPTION:="不是閏月"
            Exit Function
        End If
        
        sum = GetMultiLunarMonthDays(y, m) + d - 1
    End If
    
    ' 年初日期 + 偏移天數
    GetGregorian = DateAdd("d", sum, dateOfLunarYearBegin(y - LUNAR_YEAR_START))
End Function

'#### 返回 y 年第 n 個節氣的日期(4-25) y=1900-2100, n=1-24
Public Function GetSolarTerm(ByVal y As Long, ByVal n As Integer) As Integer
    Dim i As Integer, idxIndex As Integer, idxOffset As Integer, mask As Long, OSIndex As Long, OSValue As Long, OSOffset As Integer
    
    If y < LUNAR_YEAR_START Or y > LUNAR_YEAR_END Then
        Err.Raise Number:=6, DESCRIPTION:="只接受 " & LUNAR_YEAR_START & " - " & LUNAR_YEAR_END & " 之間的年份"
        Exit Function
    End If
    
    If n < 1 Or n > 24 Then
        Err.Raise Number:=10, DESCRIPTION:="只接受 1 - 24 之間的節氣序號"
        Exit Function
    End If
    
    idxIndex = (y - LUNAR_YEAR_START) \ 4
    idxOffset = (y - LUNAR_YEAR_START) Mod 4
    
    mask = &H7F&
    ' 每 step 向左移 8 位
    For i = 1 To 3 - idxOffset
        mask = mask * &H100
    Next i
    OSIndex = solarTermIdx(idxIndex) And mask
    ' 每 step 向右移 8 位
    For i = 1 To 3 - idxOffset
        OSIndex = OSIndex / &H100
    Next i
    
    If n <= 12 Then
        OSValue = solarTermOS(OSIndex * 2)
        OSOffset = n
    Else
        OSValue = solarTermOS(OSIndex * 2 + 1)
        OSOffset = n - 12
    End If
    
    mask = &H3&
    ' 每 step 向右移 2 位
    For i = OSOffset To 11
        mask = mask * &H4
    Next i
    OSValue = OSValue And mask
    ' 每 step 向左移 2 位
    For i = OSOffset To 11
        OSValue = OSValue / &H4
    Next i
    
    ' 基準日期 + 偏差天數
    GetSolarTerm = OSValue + solarTermBase(n - 1)
End Function

'#### 傳入公曆日期,返回農曆日期 (公曆1900/1/1~農曆1900/1/1之間的日期尚待處理)
Public Function GetLunar(ByVal dt As Date) As LunarDate
    Dim result As LunarDate
    Dim lunarYearFirstDay As Date, mask As Long, i As Integer
    Dim y As Integer, daysOfMonth As Integer, leapMonth As Integer, gregorianDay As Integer, n As Integer
    
    y = DatePart("yyyy", dt)
    
    If y < LUNAR_YEAR_START Or y > LUNAR_YEAR_END Then
        Err.Raise Number:=6, DESCRIPTION:="只接受 " & LUNAR_YEAR_START & " - " & LUNAR_YEAR_END & " 之間的公曆日期"
        Exit Function
    End If
    
    lunarYearFirstDay = dateOfLunarYearBegin(y - LUNAR_YEAR_START)
    If lunarYearFirstDay > dt Then
        result.year = y - 1
        lunarYearFirstDay = dateOfLunarYearBegin(result.year - LUNAR_YEAR_START)
    Else
        result.year = y
    End If
    
    result.day = DateDiff("d", lunarYearFirstDay, dt) + 1
    leapMonth = GetLeapMonth(result.year)
    
    mask = &H8000&
    For i = 1 To 12
        ' 正常月份
        daysOfMonth = GetLunarMonthDays(result.year, mask)
        If result.day > daysOfMonth Then
            result.day = result.day - daysOfMonth
        Else
            result.month = i
            Exit For
        End If
        
        ' 閏月
        If leapMonth = i Then
            daysOfMonth = GetLeapDays(result.year)
            If result.day > daysOfMonth Then
                result.day = result.day - daysOfMonth
            Else
                result.month = i
                result.isLeap = True
                Exit For
            End If
        End If
        
        mask = mask / 2
    Next i
    
    ' 二十四節氣
    n = (DatePart("m", dt) - 1) * 2
    gregorianDay = DatePart("d", dt)
    If gregorianDay > 15 Then
        n = n + 2
    Else
        n = n + 1
    End If
    
    If GetSolarTerm(y, n) = gregorianDay Then
        result.solarIndex = n
    Else
        result.solarIndex = 0
    End If
    
    GetLunar = result
End Function

'#### 類初始化,資料準備
Private Sub Class_Initialize()
    Dim i As Integer, itemCount As Integer, sum As Long
    
    compressLunarInfo = Array( _
        &H4BD8&, &H4AE0&, &HA570&, &H54D5&, &HD260&, &HD950&, &H5554&, &H56AF&, &H9AD0&, &H55D2&, _
        &H4AE0&, &HA5B6&, &HA4D0&, &HD250&, &HD295&, &HB54F&, &HD6A0&, &HADA2&, &H95B0&, &H4977&, _
        &H497F&, &HA4B0&, &HB4B5&, &H6A50&, &H6D40&, &HAB54&, &H2B6F&, &H9570&, &H52F2&, &H4970&, _
        &H6566&, &HD4A0&, &HEA50&, &H6A95&, &H5ADF&, &H2B60&, &H86E3&, &H92EF&, &HC8D7&, &HC95F&, _
        &HD4A0&, &HD8A6&, &HB55F&, &H56A0&, &HA5B4&, &H25DF&, &H92D0&, &HD2B2&, &HA950&, &HB557&, _
        &H6CA0&, &HB550&, &H5355&, &H4DAF&, &HA5B0&, &H4573&, &H52BF&, &HA9A8&, &HE950&, &H6AA0&, _
        &HAEA6&, &HAB50&, &H4B60&, &HAAE4&, &HA570&, &H5260&, &HF263&, &HD950&, &H5B57&, &H56A0&, _
        &H96D0&, &H4DD5&, &H4AD0&, &HA4D0&, &HD4D4&, &HD250&, &HD558&, &HB540&, &HB6A0&, &H95A6&, _
        &H95BF&, &H49B0&, &HA974&, &HA4B0&, &HB27A&, &H6A50&, &H6D40&, &HAF46&, &HAB60&, &H9570&, _
        &H4AF5&, &H4970&, &H64B0&, &H74A3&, &HEA50&, &H6B58&, &H5AC0&, &HAB60&, &H96D5&, &H92E0&, _
        &HC960&, &HD954&, &HD4A0&, &HDA50&, &H7552&, &H56A0&, &HABB7&, &H25D0&, &H92D0&, &HCAB5&, _
        &HA950&, &HB4A0&, &HBAA4&, &HAD50&, &H55D9&, &H4BA0&, &HA5B0&, &H5176&, &H52BF&, &HA930&, _
        &H7954&, &H6AA0&, &HAD50&, &H5B52&, &H4B60&, &HA6E6&, &HA4E0&, &HD260&, &HEA65&, &HD530&, _
        &H5AA0&, &H76A3&, &H96D0&, &H4AFB&, &H4AD0&, &HA4D0&, &HD0B6&, &HD25F&, &HD520&, &HDD45&, _
        &HB5A0&, &H56D0&, &H55B2&, &H49B0&, &HA577&, &HA4B0&, &HAA50&, &HB255&, &H6D2F&, &HADA0&, _
        &H4B63&, &H937F&, &H49F8&, &H4970&, &H64B0&, &H68A6&, &HEA5F&, &H6B20&, &HA6C4&, &HAAEF&, _
        &H92E0&, &HD2E3&, &HC960&, &HD557&, &HD4A0&, &HDA50&, &H5D55&, &H56A0&, &HA6D0&, &H55D4&, _
        &H52D0&, &HA9B8&, &HA950&, &HB4A0&, &HB6A6&, &HAD50&, &H55A0&, &HABA4&, &HA5B0&, &H52B0&, _
        &HB273&, &H6930&, &H7337&, &H6AA0&, &HAD50&, &H4B55&, &H4B6F&, &HA570&, &H54E4&, &HD260&, _
        &HE968&, &HD520&, &HDAA0&, &H6AA6&, &H56DF&, &H4AE0&, &HA9D4&, &HA4D0&, &HD150&, &HF252&, _
        &HD520&)
    
    ' 取得各農曆年的正月初一的公曆日期
    itemCount = UBound(compressLunarInfo)
    ReDim dateOfLunarYearBegin(itemCount)
    dateOfLunarYearBegin(0) = DateSerial(LUNAR_YEAR_START, FL_M, FL_D)
    
    For i = 0 To itemCount - 1
        sum = GetMultiLunarMonthDays(i + LUNAR_YEAR_START, 12)
        dateOfLunarYearBegin(i + 1) = DateAdd("d", sum, dateOfLunarYearBegin(i))
        'Debug.Print (i + LUNAR_YEAR_START + 1) & "年正月初一的公曆日期:" & vbTab & dateOfLunarYearBegin(i + 1)
    Next i
    
    
    ' 二十四節氣在各月的基準日期
    solarTermBase = Array(4, 19, 3, 18, 4, 19, 4, 19, 4, 20, 4, 20, 6, 22, 6, 22, 6, 22, 7, 22, 6, 21, 6, 21)
    
    ' 二十四節氣以年為單位,在1900-2100年間,共有69種分佈種類,一個長整型儲存12個節氣與基準日的天數差額,共2*69項(每2bit表示一個節氣的天數差,0-3天,高8位置0)
    solarTermOS = Array( _
        &H95A59A, &H599AA5, &HA5A6AA, &H9AAAA9, &HA9AAAE, &HAAAAAA, &HAAFAEE, &HAEEAAA, &HEAA59A, &H599AA5, &HA9AAAA, &HAAAAAA, &HEAA59A, &H599A95, &H95A6AA, &H9A9AA9, _
        &HA5A6AA, &HAAAAAA, &HAABAAE, &HAAEAAA, &HAAA59A, &H599695, &H95A69A, &H9A9AA9, &HA5A6AA, &HAAAAA9, &H95A59A, &H9A9AA5, &HA9AAAE, &HAAEAAA, &HAAA59A, &H599555, _
        &HAAA599, &H599555, &HAAA559, &H599555, &H95A59A, &H599695, &HAA6559, &H559555, &H55A59A, &H599695, &H95A59A, &H9A9AA9, &HAA5559, &H559555, &HA95559, &H555555, _
        &H55A599, &H599555, &HA95555, &H555555, &H55A559, &H599555, &HA5A6AA, &H9A9AA9, &HA95155, &H555555, &H55A559, &H559555, &H95A59A, &H5996A5, &HA55155, &H455555, _
        &H556559, &H559555, &H95A59A, &H5A9AA5, &HA55155, &H455554, &H555559, &H555555, &H55A599, &H599695, &H545559, &H555555, &H545555, &H595555, &H545555, &H555555, _
        &HA55155, &H454554, &H545155, &H555555, &HA55145, &H454554, &H545155, &H455555, &H955045, &H454554, &H505155, &H455555, &H955045, &H44554, &H505155, &H455554, _
        &H955045, &H44550, &H505145, &H454554, &H955045, &H44150, &H505045, &H454554, &H955044, &H44140, &H405045, &H44554, &H555044, &H44140, &H555555, &H555555, _
        &H405045, &H44550, &H555044, &H44000, &H555004, &H4000&, &H405045, &H44150, &H505045, &H54554, &H405044, &H44140, &H505045, &H44554, &H550004, &H0&, _
        &H5044&, &H44140, &H550000, &H0&, &H5044&, &H44000, &H540000, &H0&, &H5044&, &H4000&)
    
    ' 1900-2100各年的二十四節氣分佈種類,對應上表中的序號,一個長整型儲存4年序號,每8bit一個序號(序號=0-68)
    solarTermIdx = Array( _
        &H10203, &H4010503, &H4010503, &H6070809, &HA0B0C09, &HA0D0C0E, &HA0D010E, &HF000102, &H10000105, &H10000105, _
        &H10000105, &H11120708, &H13141508, &H13140D01, &H16140001, &H17180001, &H17180001, &H19180001, &H191A001B, &H1C1D1E0B, _
        &H1C1D1215, &H1F201421, &H22232400, &H22251800, &H22261800, &H22271800, &H22271D00, &H28291D1E, &H2A2B1D12, &H2C2D2024, _
        &H2E2F2324, &H302F2718, &H302F2718, &H302F271D, &H302F271D, &H3031291D, &H32332B1D, &H34352D23, &H36352D37, &H36382F37, _
        &H39382F27, &H39382F27, &H3A383127, &H3A3B312B, &H3A3B3C2B, &H3A3D3E2D, &H3F40352D, &H4140382F, &H4142382F, &H4344382F, _
        &H27000000)
    
End Sub

'#### 取得 y 年從農曆正月初一到 m 月月底的總天數
Private Function GetMultiLunarMonthDays(y As Long, m As Long) As Long
    Dim i As Integer, mask As Long, sum As Long, leapMonth As Integer
    
    If m < 1 Then
        GetMultiLunarMonthDays = 0
        Exit Function
    End If
    
    mask = &H8000&
    sum = 0
    i = 1
    ' 各正常月份天數累加
    While (i <= m) And (mask > &H8)
        sum = sum + GetLunarMonthDays(y, mask)
        mask = mask / 2
        i = i + 1
    Wend
    
    ' 閏月天數累加
    leapMonth = GetLeapMonth(y)
    If leapMonth > 0 And leapMonth < m Then
        sum = sum + GetLeapDays(y)
    End If
    
    GetMultiLunarMonthDays = sum
End Function

'#### 返回 y 年指定月份的天數
Private Function GetLunarMonthDays(y As Long, ByVal mask As Long) As Long
    If (compressLunarInfo(y - LUNAR_YEAR_START) And mask) = mask Then
        GetLunarMonthDays = 30
    Else
        GetLunarMonthDays = 29
    End If
End Function

'#### 返回 y 年閏月的天數
Private Function GetLeapDays(y As Long) As Long
    If (compressLunarInfo(y - LUNAR_YEAR_START + 1) And &HF) = &HF Then
        GetLeapDays = 30
    Else
        GetLeapDays = 29
    End If
End Function

'#### 返回 y 年閏月的月份,1-12,沒閏傳回 0
Private Function GetLeapMonth(y As Long) As Long
    Dim leapMonth As Long
    leapMonth = (compressLunarInfo(y - LUNAR_YEAR_START) And &HF)
    
    If leapMonth = &HF Then
        GetLeapMonth = 0
    Else
        GetLeapMonth = leapMonth
    End If
End Function


相關推薦

1900-2100公曆方式農曆節氣(VBA)

在前兩天,發了一段農曆轉公曆的程式碼,今天再把獲取二十四節氣的程式碼給完成了。 前提:     農曆二十節氣,以地球繞太陽公轉軌跡,以15度均勻分割,在1900~2100這個時間段,有以下規律:     1.每公曆月份,都有兩個節氣,分別在月首及月尾     2.每個節

python 生成 1900-2100節氣文件

imp time tails reat python 位置 找到 __init__ 聲明 [學習筆記] 轉載 #!/usr/bin/python3.7# -*- coding:utf-8 -*- ‘‘‘整體思路1:根據公式算出節氣日期 1900 年到 2100 200

C 試基於圖的深度優先搜尋策略寫一演算法 判別鄰接方式儲存的有向圖中是否存在由頂點 vi到頂點 vj的路徑 i≠j 。

嚴蔚敏 資料結構 7.22 給大佬跪了,這個是要返回的,但是還要兼顧頂點上連線的其他節點,不能一個不行就不行,所以走的路徑只返回走通的,走不通的略過,直到最後,能走到最後就說明根本沒有通的路徑,就這樣。 也可以把這個點上的所有連線點用深度遍歷走一次,然後看看記錄

2018階段組隊訓練賽場G區間權值

問題 G: 區間權值 時間限制: 1 Sec  記憶體限制: 128 MB 提交: 82  解決: 39 [提交] [狀態] [討論版] [命題人:admin] 題目描述 小Bo有n個正整數a1..an,以及一個權值序列w1…wn,現在他定義 現在他想知道的值,需要你來

中國網際網路紅黑史

作者 | 劉煜 本文經授權轉自一點財經 總有一種網際網路時代到達拐角的感覺。 但不知道是到底是因為自身敏感,還是狼來了的條件反射,我們對未來,總是會突然欣喜之後又毫不在乎。 直播答題分錢與區塊鏈和 P2P 沒有接得住關於網際網路繼續狂歡的願望,隨著中美貿易戰摩擦不

、form 單驗證+簡單註冊正則表示式

2.驗證正則表示式var email=/^\w{5,10}\@[0-9a-z]{2,5}\.[c,o,m]{3}$/;郵箱驗證碼:6位純數字驗證碼var id_e=/^\d{6}$/;密碼:字母/數字/英文符號(最短8位)var password=/^[0-9a-zA-Z.,;'/]{8,}$/;3.封裝驗證

Appium+python自動化()- 白素貞千等一回許仙 - 元素等待(超詳解)

簡介     許仙小時候最喜歡吃又甜又軟的湯圓了,一次一顆湯圓落入西湖,被一條小白蛇銜走了。十幾年後,一位身著白衣、有青衣丫鬟相伴的美麗女子與許仙相識了,她叫白娘子。白娘子聰明又善良,兩個人很快走到了一起。靠著自己的力量,他們過上了幸福的生活。一天,僧人法海找到許仙,警告說白娘子是一條修行千年的蛇精,許仙不

陰曆陽曆的相互轉換(支援1900~2100

背景 最近做到一個專案, 需要陰曆與陽曆的相互轉換, 網上找了很多資料, 發現很多都是不準的, 但是給了我參考價值 演算法 借用百度百科的 : 陽曆 太陽曆又稱為陽曆,是以地球繞太陽公轉的運動週期為基礎而制定的歷法。太陽曆的歷年近似等於迴歸年,一年12個月,這個“月”,實際上與朔望月無關。陽曆的月份

JS中1900-2100區間內的公曆農曆互轉的工具類

說明: (1)由於博主是在Extjs專案中使用該工具類,所以這裡我們用Extjs,但是本質上就是js。 (2)該工具類是實際專案中一直在用的,至於實際出處是哪不得而知,博主只是針對自己的整理然後覺得日後可能用得上所以在這裡做個備份。 /** * @1900-2100區

dao層各種增刪改封裝成物件方法 student 操作

/**  *   */ package com.jcuckoo.dao; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import j

mysql資料本地檔案方式匯入Hive

1、mysql生成資料 1)建立資料庫和資料表,指令碼如下: SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @[email protected]@FOREIGN_KEY_CHECKS

geek青年的狀態機,,純C語言實現

fill south 總結 target 堅持 str 分享 接收 backward geek青年的狀態機,查表,純C語言實現 1. 問題的提出。抽象 建一,不止是他,不少人跟我討論過這種問題:怎樣才幹保證在需求變更、擴充的情況下。程序的主體部分不動呢? 這是一個

將一個200*200的盒子200ms/10px的速到增到到400px之後再同樣的方式縮放到原來的位置

cnblogs int java logs class color classname nts charset <!DOCTYPE html> <html> <head> <meta charset=

用SQL語句

bsp from eache http src com 查表 舉例 語句 (計應154蘭家才)格式 舉例 select 教師編號,教師職稱 from dbo.Teacher 用SQL語句查表

HTML實體符號代碼速(轉載)

plus tro agg 小於號 times 問號 大於號 豎線 table 1.特色的 ? &copy; ? 版權標誌 | | 豎線,常用作菜單或導航中的分隔符 · &middot; · 圓點,有時被用來作為菜單分隔符 ↑ &

常用正則表達式速

tle 效果 table 邏輯 改變 小寫 body 換行符 特殊 元字符(配匹字符串用) 字符 補集(相反的) . 除換行符(\n)以外的任意字符 \n(換行) \w 單詞字符 (指大小寫字母、0-9的數字、下劃線、漢字) \W \d 數字(0-

VB 在Visio 2010 編程方式創建子進程圖

保存 圖文 link connected 修改 nts .aspx 簡單的 能夠 在2010年Visio以編程方式創建子進程圖 Office 2010 https://msdn.microsoft.com/en-us/library/gg650651.aspx

js jq 實現鼠標經過div背景進度條方式 變寬,鼠標離開變小,同時文字顏色和原來不一樣

最大 java hidden pan absolute 顏色 tin http center 1 <!DOCTYPE html> 2 <html> 3 <head> 4 5 <title></tit

Linux命令之命令方式

命令查找順序1 命令類型 linux中命令類型分為兩類,一類為shell中自帶的命令,即內部命令,而其它的在文件系統之上的命令程序,即外部命令. 內部命令的優點: 命令程序在內存中,使用更快捷 相關命令: type,enable type -

WCF技術我們應該如何正確的方式去學習掌握

直接 技術 入門 什麽 面向 tro 節奏 alt nal 一、WCF技術我該如何學習? 阿笨的回答是:作為初學者的我們,那麽請跟著阿笨一起玩WCF吧,阿笨將帶領大家如何以正確的姿勢去掌握WCF技術。由於WCF技術知識點太多了,就純基礎概念性知識都可以單獨