一个参数“结账日期”,可以自由设定(1到31之间)
求3个值 “本月期初日期”,“本月期末日期”,“本月”
设 “结账日期” 为 ls_jz
“本月期初日期” 为 ls_qc
“本月期末日期” 为 ls_qm
“本月”为 ls_month
举例1:结账日期 设定为28,那么本月期初日期等于2月28号(ls_qc='20110228'),本月期末日期等于3月28号(ls_qm='20110328'), 本月等于3(ls_month='03')
举例2:结账日期 设定为5,那么本月期初日期等于2月5号(ls_qc='20110205'),本月期末日期等于3月05号(ls_qm='20110305') , 本月等于2(ls_month='02')
求PB代码
------解决方案--------------------
写个表,把相关的数据弄进去,一年最多366行,十年也不到3660行
------解决方案--------------------
这个还要临时算啊,每个月都有要固定好。
我原来接触的系统是这样处理的。
------解决方案--------------------
举例2:结账日期 设定为5,那么本月期初日期等于2月5号(ls_qc='20110205'),本月期末日期等于3月05号(ls_qm='20110305') , 本月等于2(ls_month='02')
为什么不是 3月5号 - 4月5号 本月3?
------解决方案--------------------
1、结帐日期仅是日,能否确定年、月
2、跨了月份后,本月是前一个月还后一个月。具体规律是什么
------解决方案--------------------
请问楼主,3月的14号,15号和16号分别是哪一个月的结账日期
------解决方案--------------------
表达错误, 请问楼主,3月的14号,15号和16号的本月分别是什么?
------解决方案--------------------
------解决方案--------------------
- C/C++ code
/*“结账日期” 为 ls_jz “本月期初日期” 为 ls_qc “本月期末日期” 为 ls_qm “本月”为 ls_month*/date cd,od,ndcd =today()od =relativedate(date(string(cd,'yyyy-mm-01')),-1)nd =relativedate(date(string(relativedate(cd,31),'yyyy-mm-01')),-1)ls_month =string(cd,'yyyymm')if ls_jz > day(od) then ls_qc = odelse ls_qc = string(od,'yyyy-mm-') + string(ls_qc,'00')end ifif ls_jz > day(nd) then ls_qm = ndelse ls_qm = string(nd,'yyyy-mm-') + string(ls_qc,'00')end if
------解决方案--------------------
- C/C++ code
/*“结账日期” 为 ls_jz “本月期初日期” 为 ls_qc “本月期末日期” 为 ls_qm “本月”为 ls_month*/date cd,od,ndcd =today()od =relativedate(date(string(cd,'yyyy-mm-01')),-1)nd =relativedate(date(string(relativedate(cd,31),'yyyy-mm-01')),-1)ls_month =string(cd,'mm')if ls_jz > day(od) then ls_qc = string(od,'yyyymmdd')else ls_qc = string(od,'yyyymm') + string(ls_qc,'00')end ifif ls_jz > day(nd) then ls_qm = string(nd,'yyyymmdd')else ls_qm = string(nd,'yyyymm') + string(ls_qc,'00')end if
------解决方案--------------------
//输入: ls_jz
string ls_qc,ls_qm,ls_month,ls_jz
ls_jz = sle_1.text
ls_qc = string(today(),"yyyy-mm")+"-"+ls_jz
ls_qm = string(relativedate(date(string(today(),"yyyy-mm")+"-01"),31),"yyyy-mm")+"-"+ls_jz
if daysafter(date(string(date(ls_qm),"yyyy-mm")+"-01"),date(ls_qm)) > daysafter(date(ls_qc),date(string(date(ls_qm),"yyyy-mm")+"-01")) - 1 then
ls_month = string(date(ls_qm),"yyyy-mm")
else
ls_month = string(date(ls_qc),"yyyy-mm")
end if