123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- $PBExportHeader$f_get_month_day.srf
- global type f_get_month_day from function_object
- end type
- forward prototypes
- global function integer f_get_month_day (long arg_mth, integer arg_type, ref datetime arg_ref_datetime, ref string arg_msg)
- end prototypes
- global function integer f_get_month_day (long arg_mth, integer arg_type, ref datetime arg_ref_datetime, ref string arg_msg);Int rslt = 1
- Long ll_year,ll_month,ll_lastday
- Boolean ifyear = FALSE
- ll_year = Long(Left(String(arg_mth),4))
- ll_month = Long(Right(String(arg_mth),2))
- IF Not (ll_month >= 1 AND ll_month <= 12) THEN
- arg_msg = '非法的月份'
- rslt = 0
- GOTO ext
- END IF
- CHOOSE CASE arg_type
- CASE 0 //当月第一天
- arg_ref_datetime = datetime(date(string(ll_year,'0000') + '-'+string(ll_month,'00') + '-01'),time(0))
- CASE 1 //当月最后一天
-
- IF Mod(ll_year,4) <> 0 THEN
- ifyear = FALSE
- ELSEIF Mod(ll_year,100) <> 0 THEN
- ifyear = TRUE
- ELSEIF Mod(ll_year,400) <> 0 THEN
- ifyear = FALSE
- ELSE
- ifyear = TRUE
- END IF
-
- CHOOSE CASE ll_month
- CASE 1,3,5,7,8,10,12
- ll_lastday = 31
- CASE 2
- IF ifyear THEN
- ll_lastday = 29
- ELSE
- ll_lastday = 28
- END IF
- CASE 4,6,9,11
- ll_lastday = 30
- END CHOOSE
-
- arg_ref_datetime = datetime(date(string(ll_year,'0000') + '-'+string(ll_month,'00') + '-'+string(ll_lastday,'00')),time('23:59:59'))
- END CHOOSE
- ext:
- RETURN rslt
- end function
|