- 论坛徽章:
- 0
|
#---------------------------------------------------------------------#
# -- 日期對應的周別(星期一為第一周開始)
#---------------------------------------------------------------------#
FUNCTION date_to_week(Sdate)
DEFINE Sdate CHAR(8 ),
Syymmdd CHAR(8 ),
S10ymd CHAR(10),
Sweekno INT, # -- 周別(本年1/1不為周一則返回上年最後一周)
Scnt INT
LET Syymmdd = Sdate[1,4],'0101'
LET S10ymd = '01/01/',Sdate[1,4]
LET Scnt = weekday(S10ymd)
LET Scnt = -Scnt
CALL chaddc(Syymmdd,Scnt) RETURNING Syymmdd # -- 日期減天數
CALL chaddd(Sdate,Syymmdd) RETURNING Scnt # -- 日期相減得天數
LET Sweekno = (Scnt - 1) / 7
IF Sweekno = 0 THEN # -- 遞歸調用
LET Syymmdd = Sdate[1,4] - 1 USING "&&&&",'1231'
CALL date_to_week(Syymmdd) RETURNING Sweekno
END IF
RETURN Sweekno
END FUNCTION |
|