时间功能进行中4GL

时间:2019-07-02 07:59:33

标签: openedge progress-4gl

我想在代码中插入2个换档时间。

  1. (第一班) 班次从8:00:00:000移至19:59:59:999
  2. (第二班) 班次从20:00:00:000开始到第二天7:59:59:999

我需要获取上面的确切数据以添加到下面的代码中。 请帮忙。 下面是代码:

IF TIME < (20 * 60 * 60)  THEN  DO: 
     ASSIGN StartDDT = dt_tm2dec(DATE(TODAY), 0)
            EndDDT   = dt_tm2dec(DATE(TODAY),19 * 60 * 60 + 59 * 60 + 59).
END.
ELSE DO: 
    ASSIGN StartDDT = dt_tm2dec(DATE(TODAY),20 * 60 * 60).
            EndDDT  = dt_tm2dec(DATE(TODAY + 1),07 * 60 * 60 + 59 * 60 + 59).
END.

2 个答案:

答案 0 :(得分:1)

您指定的条件可以写为:

if ( time >= ( 8 * 60 * 60 )) and ( time < ( 20 * 60 * 60 )) then 
  do:
    message "first shift".
  end.
 else
  do:
    message "second shift".
  end.

答案 1 :(得分:1)

您可以使用TouchAction touchAction = new TouchAction(driver).press(PointOption.point(10,100)).moveTo(PointOption.point(200, 100)).release(); touchAction.perform(); 数据类型来获取毫秒级精度。使用DATETIME函数建立班次,然后将您的时间与他们进行比较。 DATETIME函数使您可以将当前时间降低到毫秒:

NOW

您还可以通过向DEFINE VARIABLE dtShift1 AS DATETIME NO-UNDO. DEFINE VARIABLE dtShift2 AS DATETIME NO-UNDO. ASSIGN dtShift1 = DATETIME(TODAY, (8 * 60 * 60 * 1000)) dtShift2 = DATETIME(TODAY, (20 * 60 * 60 * 1000)). IF NOW >= dtShift1 AND NOW < dtShift2 THEN MESSAGE "First shift" VIEW-AS ALERT-BOX INFORMATION. ELSE MESSAGE "Second shift" VIEW-AS ALERT-BOX INFORMATION. 添加一天来检查第二天的轮班时间:

TODAY

如果需要处理不同的时区,请使用dtShift1 = DATETIME(TODAY + 1, (8 * 60 * 60 * 1000)) 数据类型。