zoukankan      html  css  js  c++  java
  • PowerBuilder -- 日期

    #PB自带日期相关函数

    Date(...), DateTime(...), RelativeDate(...), Year(...), Month(...), Day(...), DaysAfter(...)

    #根据日期获取间隔n月第一天

    //====================================================================
    // 事件: uf_get_first_day()
    //--------------------------------------------------------------------
    // 描述: 根据日期获取间隔n月第一天
    //--------------------------------------------------------------------
    // 参数:
    //     value    date       ad_date    
    //     value    integer    ai_n       
    //--------------------------------------------------------------------
    // 返回:  date
    //====================================================================
    Date ld_first_day
    Int li_year, li_month
    
    li_year = Year(ad_date)
    li_month = Month(ad_date)
    
    li_month = li_month + ai_n
    
    Do While li_month < 0
        li_month = li_month + 12
        li_year = li_year - 1
    Loop
    
    Do While li_month > 12
        li_month = li_month - 12
        li_year = li_year + 1
    Loop
    
    ld_first_day = Date(String(li_year) + '-' + String(li_month) + '-1')
    
    Return ld_first_day

    #根据日期获取当月最后一天的日期

    //====================================================================
    // 事件: uf_get_last_day()
    //--------------------------------------------------------------------
    // 描述: 根据日期获取当月最后一天的日期
    //--------------------------------------------------------------------
    // 参数:
    //     value    date    ad_date    
    //--------------------------------------------------------------------
    // 返回:  date
    //====================================================================
    Date ld_last_day
    Int li_year, li_month, li_day
    
    li_year = Year(ad_date)
    li_month = Month(ad_date)
    li_day = uf_get_daynum(ad_date)
    
    ld_last_day = Date(String(li_year) + '-' + String(li_month) + '-' + String(li_day))
    
    Return ld_last_day

    #根据日期获取当月的天数

    //====================================================================
    // 事件: uf_get_daynum()
    //--------------------------------------------------------------------
    // 描述: 根据日期获取当月的天数
    //--------------------------------------------------------------------
    // 参数:
    //     value    date    ad_date    
    //--------------------------------------------------------------------
    // 返回:  integer
    //====================================================================
    Int li_year, li_month, li_daynum
    
    li_year = Year(ad_date)
    li_month = Month(ad_date)
    
    Choose Case li_month
        Case 1, 3, 5, 7, 8, 10, 12
            li_daynum = 31
        Case 4, 6, 9, 11
            li_daynum = 30
        Case 2
            If (Mod(li_year, 4) = 0 And Mod(li_year, 100) <> 0) Or Mod(li_year, 400) = 0 Then
                li_daynum = 29
            Else
                li_daynum = 28
            End If
    End Choose
    
    Return li_daynum

    #计算两个带时间部分的日期的间隔 秒

    原文:https://bbs.csdn.net/topics/392383457 二楼

    //====================================================================
    // 事件: wf_time_interval()
    //--------------------------------------------------------------------
    // 描述: 计算两个带时间部分的日期的间隔 秒
    //--------------------------------------------------------------------
    // 参数:
    //     datetime    adt_begin    
    //     datetime    adt_end      
    //--------------------------------------------------------------------
    // 返回:  long
    //====================================================================
    DateTime ldt_begin, ldt_end
    Long ll_day, ll_seconds, ll_value, ll_ret
    
    If adt_begin > adt_end Then
        ldt_begin = adt_end
        ldt_end = adt_begin
        ll_ret = -1
    Else
        ldt_begin = adt_begin
        ldt_end = adt_end
        ll_ret = 1
    End If
    
    ll_day = DaysAfter(Date(ldt_begin), Date(ldt_end)) - 1
    ll_seconds = SecondsAfter(Time(ldt_begin), 23:59:59) + 1
    ll_seconds += SecondsAfter(00:00:00, Time(ldt_end))
    ll_value = ll_day * 24 * 3600 + ll_seconds
    
    ll_ret = ll_ret * ll_value
    
    Return ll_ret
  • 相关阅读:
    第五周的学习进度情况
    周末经历之小体会
    构建之法阅读笔记5
    第四周的学习进度情况
    hashMap中如何形成循环链表的?
    代理模式
    sharing-jdbc实现读写分离及分库分表
    分库分表
    读写分离实现方式
    MySQL主从复制
  • 原文地址:https://www.cnblogs.com/yarightok/p/6877782.html
Copyright © 2011-2022 走看看