网上收藏的
/* 函数名称:wf_DateAdd 函数作用:根据指定的类型,计算相应一段时间后的新日期 函数参数: string ls_type 指定的方式 'year','yy','yyyy' //年份方式 'month','mm','m' //月份方式 case 'day','dd','d' //天数方式 'week','wk','ww' //周数方式 'quarter','qq','q' //季度方式 date ld_qsrq 起始日期 integer li_sj 指定的时间段 函数返回值: date ld_NewDate 新日期 */ date ld_NewDate int li string ls if li_sj = 0 then return ld_qsrq choose case lower(ls_type) case 'year','yy','yyyy' //年份 li = year(ld_qsrq) + li_sj if li < 1900 or li > 3000 then return 1900-01-01 ls = string(li) + string(ld_qsrq, '-mm-dd') case 'quarter','qq','q' //季度 li = month(ld_qsrq) + 3 * li_sj ls = string(year(ld_qsrq) + int((li -1) / 12)) + string(mod(li, 12) - 6 * (sign(li) - 1), '-00') + string(ld_qsrq, '-dd') case 'month','mm','m' //月份 li = month(ld_qsrq) + li_sj ls = string(year(ld_qsrq) + int((li -1) / 12)) + string(mod(li, 12) - 6 * (sign(li) - 1), '-00') + string(ld_qsrq, '-dd') case 'day','dd','d' //天数 return RelativeDate ( ld_qsrq, li_sj ) case 'week','wk','ww' //周数 return RelativeDate ( ld_qsrq, li_sj * 7 ) case else return ld_qsrq end choose if ls = '1900-01-01' then return 1900-01-01 ld_NewDate = date(ls) if ld_NewDate = 1900-01-01 then ld_NewDate = wf_dateadd('dd', wf_dateadd('mm', date(left(ls, 8) + '01'), 1), -1) return ld_NewDate
调用方式
date ld_qsrq date ld_NewDate integer li_sj ld_qsrq = date(sle_qsrq.text) //起始日期 li_sj = long(sle_sj.text) //时间段 //天数方式 sle_day.text = string(wf_DateAdd("day",ld_qsrq,li_sj),'yyyy-mm-dd') //月份方式 sle_month.text = string(wf_DateAdd("month",ld_qsrq,li_sj),'yyyy-mm-dd') //年份方式 sle_year.text = string(wf_DateAdd("year",ld_qsrq,li_sj),'yyyy-mm-dd') //季度方式 sle_quarter.text = string(wf_DateAdd("quarter",ld_qsrq,li_sj),'yyyy-mm-dd') //周方式 sle_week.text = string(wf_DateAdd("week",ld_qsrq,li_sj),'yyyy-mm-dd')
计算结果