- 论坛徽章:
- 0
|
1.
##SYNTAX CALL s_monbend(p_yy,p_mm)
## RETURNING l_bdate,l_edate
##DESCRIPTION 讀取該月份所在的之第一天及最後一天
##PARAMETERS p_yy 年 p_mm 月
##RETURNING l_bdate 該月之第一天
## l_edate 該月之最後一天
# Date & Author..: 04/04/23 by Kerry
FUNCTION s_monbend(p_yy,p_mm)
DEFINE p_yy,p_mm INTEGER
DEFINE n_yy,n_mm INTEGER
DEFINE l_bdate,l_edate DATE,
c_bdate char(10),
c_yeare char(04),
c_month char(02)
LET c_yeare=p_yy
LET c_month=p_mm using '&&'
LET c_bdate=c_yeare[3,4],c_month,'01'
LET l_bdate=c_bdate
LET n_yy=p_yy
LET n_mm=p_mm+1
IF n_mm=13 THEN LET n_yy=n_yy+1 LET n_mm=n_mm-12 END IF
LET l_edate=MDY(n_mm,1,n_yy)-1
RETURN l_bdate,l_edate
END FUNCTION
2.
##SYNTAX CALL s_mothck(p_date)
## RETURNING l_bdate,l_edate
##DESCRIPTION 讀取該日期所在的月份之第一天及最後一天
##PARAMETERS p_date 日期
##RETURNING l_bdate 該月之第一天
## l_edate 該月之最後一天
# Date & Author..: 04/04/23 by Kerry
FUNCTION s_mothck(p_date)
DEFINE p_date DATE,
p_bdate DATE,
p_edate DATE,
l_date DATE,
b_date CHAR(0 ,
l_tmp SMALLINT
IF p_date IS NULL OR p_date=' ' THEN
RETURN '',''
END IF
LET b_date=p_date USING "yyyymmdd"
IF b_date[7,8]<>;'01' THEN LET b_date=b_date[1,4],b_date[5,6],b_date[7,8]*0+1 USING '&&'
END IF
LET p_bdate = MDY(b_date[5,6],b_date[7,8],b_date[1,4]) #該月第一天
#將月份加一, 再將日期減一, 即可得到上月的最後一天
LET b_date=b_date[1,4],b_date[5,6]+1 USING '&&',b_date[7,8]
IF b_date[5,6]='13' THEN LET b_date=b_date[1,4]+1 USING '&&&&',b_date[5,6]*0+1
USING '&&',b_date[7,8]
END IF
LET l_date = MDY(b_date[5,6],b_date[7,8],b_date[1,4]) #該月之最後一天
LET p_edate=l_date-1
RETURN p_bdate,p_edate
END FUNCTION |
|