计算时间间隔天数

参考1:&NUM_DAYS = Abs(Days(HIRE_Date) - Days(RELEASE_Date)); 

 

参考2:

/*计算时间差直接用系统函数AgeInYears*/

/*来源于修改人员页面的日期计算*/

DeclareFunctionAgeInYears PeopleCode FUNCLIB_HR.AGE FieldFormula;

DeclareFunctionAgeInMonth PeopleCode FUNCLIB_HR.AGE FieldFormula;

 

SQLExec("SELECT  SPG_WORKSTART_TIME,SPG_WORKEND_TIME FROMPS_SPG_WORKSTART_T",&START_TIME,&END_TIME);

SPG_WORKSTART_T.AGE_YEARS =AgeInYears(SPG_WORKSTART_T.SPG_WORKSTART_TIME,SPG_WORKSTART_T.SPG_WORKEND_TIME);

SPG_WORKSTART_T.AGE_MONTH =AgeInMonth(SPG_WORKSTART_T.SPG_WORKSTART_TIME,SPG_WORKSTART_T.SPG_WORKEND_TIME);

 

&SUM=SQLExec("selectSUM(AGE_YEARS),SUM(AGE_MONTH)  fromps_spg_workstart_t", &SUMYEARS,&SUMMONTHS);

 

If &SUMMONTHS /12>0Then

  SPG_YEARMON_WRK.AGE_YEARS =&SUMYEARS +&SUMMONTHS /12;

  SPG_YEARMON_WRK.AGE_MONTH =(Mod(&SUMMONTHS,12));

  

End-If;

 

 

/*对输入逻辑错误的判断,如两个时间段中间还夹杂有其他的时间段,在grid中点添加时提示输入错误*/

&RS1 =  GetLevel0();

Local Rowset &WrkDeRs;

 

&WrkDeRs =  GetLevel0()(1).GetRowset(Scroll.SPG_WORKSTART_T);

If &WrkDeRs.RowCount >1Then

    &CURRENTIME_ST =  SPG_WORKSTART_T.SPG_WORKSTART_TIME.Value;

    &CURRENTIME_END =  SPG_WORKSTART_T.SPG_WORKEND_TIME.Value;

   For  &I =1To  &WrkDeRs.RowCount

       &TIME_END =  &WrkDeRs(&I).SPG_WORKSTART_T.SPG_WORKSTART_TIME.Value;

       &TIME_BEGIN =  &WrkDeRs(&I).SPG_WORKSTART_T.SPG_WORKEND_TIME.Value;

      REM    Warning &TIME_BEGIN;

     

      Warning  &CURRENTIME_ST;

      REM    Warning  SPG_WORK_DE_TBL.SPG_WORK_DE_ST.Value;

      If(&CURRENTIME_ST  > &TIME_BEGIN)And

            (&CURRENTIME_ST  < &TIME_END)Or

            (&CURRENTIME_END  > &TIME_BEGIN)And

               (&CURRENTIME_END  < &TIME_END)Then

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值