如何以6位数表示期次
在许多企业管理系统开发中,很多报表设计的数据提取方式都需要用到期次的概念。而使用6位数的期次来表示是一种常见的方法。具体地说,当月1号(含1号)开始到当月31号(含31号)为止算一个当期次。
为实现这个功能,我们需要编写一段代码。其中,包括了上期的V_shangqi和本期的V_benqi的处理。如果当前日期的月份是两位数,则直接将年份和月份拼接在一起即可。否则,还需要加上0作为占位符。以下是代码示例:
if len(cstr(month(date))) 2 then
V_benqi cstr(year(date)) cstr(month(date))
else
V_benqi cstr(year(date)) "0" cstr(month(date))
end if
if len(cstr(month(date))) 1 then
if cint(month(date)) 1 then
V_shangqi cstr(int(year(date)) - 1) "12"
else
V_shangqi cstr(year(date)) "0" cstr(int(month(date))-1)
end if
else
if cint(month(date)) 10 then
V_shangqi cstr(year(date)) "09"
else
V_shangqi cstr(year(date)) cstr(int(month(date))-1)
end if
end if
根据客户要求自定义范围为一个期次
除了正常的1号到31号为一个当期次的时间范围外,还有可能根据客户的要求进行自定义。例如,某些公司规定到本月27号为止就是上个月的最后一天。此时,我们需要稍微改动一下代码来实现自定义范围为一个期次的功能。
假设以上月27日(含上月27号)开始到本月26号(含26号)为本期次的表示方法。以下是修改后的代码示例:
if day(date) < 27 then
if len(cstr(month(date))) 2 then
V_benqi cstr(year(date)) cstr(month(date))
else
V_benqi cstr(year(date)) "0" cstr(month(date))
end if
else
if cint(month(date)) 9 or cint(month(date)) 10 or cint(month(date)) 11 then
V_benqi cstr(year(date)) cstr(int(month(date)) 1)
elseif cint(month(date)) 12 then
V_benqi cstr(int(year(date)) 1) "01"
else
V_benqi cstr(year(date)) "0" cstr(int(month(date)) 1)
end if
end if
if len(cstr(month(date))) 1 then
if cint(month(date)) 1 then
V_shangqi cstr(int(year(date))-1) "12"
else
V_shangqi cstr(year(date)) "0" cstr(int(month(date))-1)
end if
else
if cint(month(date)) 10 then
V_shangqi cstr(year(date)) "09"
else
V_shangqi cstr(year(date)) cstr(int(month(date))-1)
end if
end if
总结
以上是关于ASP项目笔记之:“6位数的期次表示”的内容。在企业软件开发中,期次的概念和应用十分常见。针对不同的需求,我们可以采用不同的代码来实现期次的表示和计算,从而满足用户的需求。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。