hur.cn - 华软网

 热门搜索

高分求教!!,谢谢!!

  作者:未知    来源:网络    更新时间:2018/2/6
我做得如何判断周六日
看看我的有何问题,我觉得是pb函数不对,希望各位大哥求教
long gtshu 
long i
gtshu=abs(daysafter(stat_sj,end_sj))
date riqi
long riqishu
long l_zlr,l_work
gtshu=gtshu+1
for i=0 to gtshu
riqi=RelativeDate(stat_sj,i)
riqishu=daynumber(riqi)
l_work=l_worktemp+1
if riqishu>5 then
l_zlr=l_zlr+1
else
l_work=l_work+1
end if
next
------华软网友回答------
for i=0 to gtshu??

如果从0开始不是要多一天??
是不是应该为:for i=1 to gtshu
------华软网友回复------
不是吧,如果从1开始,总天数就少了一天啊
------华软网友回复------
你这个好象不是判断周六日,而是统计一段时间内工作日跟周六日的日数

l_work=l_worktemp+1 
这句有问题,这句好象是多余的!  l_worktemp 有什么用?
------华软网友回复------
不好意思,l_work=l_worktemp+1,没有
long i
gtshu=abs(daysafter(stat_sj,end_sj))
date riqi
long riqishu
long l_zlr,l_work
for i=1 to gtshu
riqi=RelativeDate(stat_sj,i)
riqishu=daynumber(riqi)
if riqishu>5 then
l_zlr=l_zlr+1
else
l_work=l_work+1
end if
next
我这个怎么不是判断周六日,daynumber()>5的就是休息日了,可以星期天返回的是1,我也不知该怎么办了,希望大哥指点
------华软网友回复------
这样是不行滴!
------华软网友回复------
你看看帮助吧,里面已经明确说明了星期日是返回1的,星期六是返回7 
你修改一下就行了
if riqishu = 7 or riqishu = 1 then
  l_zlr=l_zlr+1
else
   l_work=l_work+1
end if

------华软网友回复------
应该是先算出2个日期之间有几周
那么就有几个周六周日,在判断最后期间有没有周六周日
date aa,bb
aa = date('2005-01-01')
bb = date('2005-01-31')
int i=-2

date cc
cc = aa
do while cc < bb
cc = RelativeDate ( cc, 7)
i += 2
loop

cc = RelativeDate ( cc, -7)
do while cc<bb
    if DayNumber ( cc) = 1 then i++
    if DayNumber ( cc) = 7 then i++
    cc = RelativeDate ( cc, 1)
loop
     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。