按指定的方式,指定的时间段,得到新日期

本文介绍了一个用于计算日期的函数wf_DateAdd,详细解释了其参数、工作原理及如何通过不同方式调整日期。
 1 /*
 2 函数名称:wf_DateAdd
 3 函数作用:根据指定的类型,计算相应一段时间后的新日期
 4 函数参数:
 5     string    ls_type    指定的方式
 6                 'year','yy','yyyy' //年份方式
 7                 'month','mm','m' //月份方式
 8                  case 'day','dd','d' //天数方式
 9                  'week','wk','ww' //周数方式
10                  'quarter','qq','q' //季度方式
11     date        ld_qsrq    起始日期
12     integer    li_sj        指定的时间段
13 函数返回值:
14     date
15         ld_NewDate    新日期
16 */
17 
18 date ld_NewDate
19 int li
20 string ls
21 
22 if li_sj = 0 then return ld_qsrq
23 
24 choose case lower(ls_type)
25     case 'year','yy','yyyy' //年份
26         li = year(ld_qsrq) + li_sj
27         if li < 1900 or li > 3000 then return 1900-01-01
28         ls = string(li) + string(ld_qsrq, '-mm-dd')
29     case 'quarter','qq','q' //季度
30         li = month(ld_qsrq) + 3 * li_sj
31         ls = string(year(ld_qsrq) + int((li -1) / 12)) + string(mod(li, 12) - 6 * (sign(li) - 1), '-00') + string(ld_qsrq, '-dd')
32     case 'month','mm','m' //月份
33         li = month(ld_qsrq) + li_sj
34         ls = string(year(ld_qsrq) + int((li -1) / 12)) + string(mod(li, 12) - 6 * (sign(li) - 1), '-00') + string(ld_qsrq, '-dd')
35     case 'day','dd','d' //天数
36         return RelativeDate ( ld_qsrq, li_sj )
37     case 'week','wk','ww' //周数
38         return RelativeDate ( ld_qsrq, li_sj * 7 )
39     case else
40         return ld_qsrq
41 end choose
42 
43 if ls = '1900-01-01' then return 1900-01-01
44 ld_NewDate = date(ls)
45 if ld_NewDate = 1900-01-01 then ld_NewDate = wf_dateadd('dd', wf_dateadd('mm', date(left(ls, 8) + '01'), 1), -1)
46 
47 return ld_NewDate

调用方式

 1 date ld_qsrq
 2 date ld_NewDate
 3 integer li_sj
 4 
 5 ld_qsrq = date(sle_qsrq.text)    //起始日期
 6 li_sj    = long(sle_sj.text)    //时间段
 7 //天数方式
 8 sle_day.text = string(wf_DateAdd("day",ld_qsrq,li_sj),'yyyy-mm-dd')
 9 //月份方式
10 sle_month.text = string(wf_DateAdd("month",ld_qsrq,li_sj),'yyyy-mm-dd')
11 //年份方式
12 sle_year.text = string(wf_DateAdd("year",ld_qsrq,li_sj),'yyyy-mm-dd')
13 //季度方式
14 sle_quarter.text = string(wf_DateAdd("quarter",ld_qsrq,li_sj),'yyyy-mm-dd')
15 //周方式
16 sle_week.text = string(wf_DateAdd("week",ld_qsrq,li_sj),'yyyy-mm-dd')

 

转载于:https://www.cnblogs.com/cwbo-win/articles/3393975.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值