DurationCalculator - 전역

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기16분
  • DurationCalculator 스크립트 포함은 기간 및 기한을 계산하는 메서드를 제공합니다.

    DurationCalculator - 기간 계산기( )

    DurationCalculator 클래스의 생성자입니다.

    표 1. 매개변수
    이름 유형 설명
    안 함
    var dc = new DurationCalculator();

    DurationCalculator - calcDuration(초 수)

    현재 시작 날짜 및 시간을 기준으로 기간(초)으로 경과한 종료 날짜 및 시간을 계산합니다.

    또한 이 메서드는 , 및 this.totalSeconds 속성을 업데이트된 값으로 설정합니다.this.endDateTimethis.secondsseconds 속성은 작업 일정을 기준으로 기간 동안 수행할 총 작업 시간(초)을 나타냅니다. 이 totalSeconds 속성은 작업 시간과 비작업을 모두 포함하는 기간의 시작 시간과 종료 시간 사이의 총 시간(초)을 나타냅니다.

    이 메서드를 호출하기 전에 해당 기간 동안 사용할 시작 시간으로 setStartDateTime() 을 호출해야 합니다.

    표 2. 매개변수
    이름 유형 설명
    번호 종료 날짜 및 시간, 초 및 총 초 값을 계산하기 위해 시작 날짜 및 시간에 추가할 시간(초)입니다.
    표 3. 반환
    유형 설명
    부울 입력 값이 숫자가 아닌 경우 False입니다.
    var gdt = new GlideDateTime("2020-05-01 00:00:00");
    
    var dc = new DurationCalculator();
    dc.setStartDateTime(gdt);
    
    if(!dc.calcDuration(2*24*3600)){ // 2 days
      gs.log("*** Error calculating duration");
      return;
    }
    var secs = dc.getSeconds();
    var totalSecs = dc.getTotalSeconds();
    
    gs.print("***SCHEDULE DURATION: SECS=" + secs + " TOTALSECS=" + totalSecs + " ENDTIME = " + endDateTime);

    출력

    ***SCHEDULE DURATION: SECS=172800 TOTALSECS=970534 ENDTIME = 2020-05-03 00:00:00

    DurationCalculator - calcRelativeDueDate(GlideDateTime start, Number days, String endTime)

    경과된 시작 시간에 시작하여 현재 일정과 시간대를 사용하여 일 수를 더한 기한을 계산합니다.

    calcRelativeDuration()에 의해 시작된 상대 기간 정의에서 calculator.calcRelativeDueDate(calculator.startDateTime, days)로 호출됩니다. 작업 기한이 결정되면 메서드는 해당 날짜의 경과 endTime 시간으로 시간을 설정합니다. 일정에 남은 날이 충분하지 않으면 일정의 마지막 날을 사용합니다.

    표 4. 매개변수
    이름 유형 설명
    시작 Glide날짜/시간 계산 시작 날짜를 포함하는 GlideDateTime 객체입니다.
    번호 시작 날짜에 추가할 일 수입니다.
    endTime 문자열 계산된 기한에 업무 마감일이 도래하는 시간입니다.

    비어 있는 경우 기본값은 작업일의 종료로 설정됩니다.

    형식: HH:mm:ss

    표 5. 반환
    유형 설명
    부울 완료 날짜가 일정 내에 있는지 여부를 나타내는 플래그입니다.
    가능한 값:
    • true: 완료 날짜가 일정 내에 있습니다.
    • false: 완료 날짜가 일정을 벗어났습니다. 이 메서드를 호출하기 전에 일정이 설정되지 않은 경우 정의되지 않습니다.
    var dc = new DurationCalculator();
    var startTime = new GlideDateTime();
    
    // Settings for calculations
    // Optional: Specify the schedule to use for the following calculations
    dc.setSchedule('08fcd0830a0a0b2600079f56b1adb9ae'); 
    // Optional: Specify a different timezone to use
    dc.setTimeZone("Los Angeles");
    // Optional: Set a start date and time, otherwise the current time is assumed
    dc.setStartDateTime("2020-04-10 08:00:00")
    // Calculate end time, from number of seconds required in the schedule
    dc.calcDuration(3*24*3600); // 3 days
    dc.calcRelativeDueDate(startTime, "3", "07:00:00");

    DurationCalculator - calcRelativeDuration(String relativeDurationID)

    지정된 상대 기간 스크립트를 사용하여 기간을 계산합니다.

    완료되면 this.endDateTime 계산 결과를 나타내도록 and this.seconds 속성이 설정됩니다.

    표 6. 매개변수
    이름 유형 설명
    상대 기간 ID 문자열 상대 기간 일정의 sys_id(테이블 cmn_relative_duration).
    표 7. 반환
    유형 설명
    부울 기간 스크립트의 결과입니다.
    var dc = new DurationCalculator();
    dc.calcRelativeDuration('08fcd0830a0a1b2600074f56b1ad7cb');

    DurationCalculator - calcScheduleDuration(String startTime, String endTime)

    이미 지정된 일정과 endTime 선택적으로 재정의된 시간대 사이의 startTime 기간을 반환합니다.

    또한 이 메서드는 현재 스케줄 객체에서 , this.seconds및 를 this.totalSeconds 설정합니다this.endDateTime.

    표 8. 매개변수
    이름 유형 설명
    startTime 문자열 옵션입니다. 종료 시간의 표시 값입니다.

    기본값: 현재 날짜 및 시간( setStartDateTime()을 사용하여 설정)을 사용합니다. 이 매개 변수가 전달되지 않은 경우 자리 표시자를 전달해야 합니다(예: dur.calcScheduleDuration("", endDateTime);).

    endTime 문자열 옵션입니다. 시작 시간의 표시 값입니다.

    기본값: 현재 날짜 및 시간( setEndDateTime()을 사용하여 설정)을 사용합니다.

    표 9. 반환
    유형 설명
    번호 일정 기간입니다. 이전startTime인 경우 endTime 0을 반환합니다.

    단위: 초

    var dur = new DurationCalculator();
    
    // Set 9-5 weekday schedule. This is the schedule in which endDateTime, seconds, and totalseconds is set
    dur.setSchedule('08fcd0830a0a0b2600079f56b1adb9ae');
    dur.calcScheduleDuration("2019-01-02 11:00:00", "2019-01-06 09:00:00");
    var secs = dur.getSeconds();
    var totalSecs = dur.getTotalSeconds();
    var endDateTime = dur.getEndDateTime() + "";
    
    gs.print("***SCHEDULE DURATION: SECS=" + secs + " TOTALSECS=" + totalSecs + " ENDTIME = " + endDateTime);

    출력

    ***SCHEDULE DURATION: SECS=97200 TOTALSECS=338400 ENDTIME = 2019-01-06 09:00:00

    DurationCalculator - calcScheduleDuration(GlideDateTime startTime, GlideDateTime endTime)

    이미 지정된 일정과 endTime 선택적으로 재정의된 시간대 사이의 startTime 기간을 반환합니다.

    또한 이 메서드는 현재 스케줄 객체에서 , this.seconds및 를 this.totalSeconds 설정합니다this.endDateTime.

    표 10. 매개변수
    이름 유형 설명
    startTime Glide날짜/시간 옵션입니다. 사용할 시작 시간이 포함된 GlideDateTime 객체입니다.

    기본값: 현재 날짜 및 시간( setStartDateTime()을 사용하여 설정)을 사용합니다. 이 매개 변수가 전달되지 않은 경우 자리 표시자를 전달해야 합니다(예: dur.calcScheduleDuration("", endDateTime);).

    endTime Glide날짜/시간 옵션입니다. 사용할 종료 시간이 포함된 GlideDateTime 객체입니다.

    기본값: 현재 날짜 및 시간( setEndDateTime()을 사용하여 설정)을 사용합니다.

    표 11. 반환
    유형 설명
    번호 일정 기간입니다. 이전startTime인 경우 endTime 0을 반환합니다.

    단위: 초

    var startDateTime = new GlideDateTime("2020-11-02 11:00:00");
    // Instantiate a new GlideDateTime object which has the end date as the current date and time
    var endDateTime = new GlideDateTime(); 
    var dur = new DurationCalculator();
    
    // Set 9-5 weekday schedule. This is the schedule in which endDateTime, seconds, and totalseconds is set
    dur.setSchedule('08fcd0830a0a0b2600079f56b1adb9ae'); 
    dur.calcScheduleDuration(startDateTime, endDateTime);
    var secs = dur.getSeconds();
    var totalSecs = dur.getTotalSeconds();
    
    gs.print("***SCHEDULE DURATION: SECS=" + secs + " TOTALSECS=" + totalSecs + " ENDTIME = " + endDateTime);

    출력

    ***SCHEDULE DURATION: SECS=293734.24 TOTALSECS=970534 ENDTIME = 2020-11-13 16:35:34

    기간 계산기 - getEndDateTime( )

    calcDuration/calcRelativeDuration에 의해 설정된 속성을 가져와서 endDateTime 해당 기간의 종료 날짜 및 시간을 나타냅니다.

    표 12. 매개변수
    이름 유형 설명
    없음
    표 13. 반환
    유형 설명
    Glide날짜/시간 종료 날짜/시간입니다.
    var dc = new DurationCalculator();
    dc.calcDuration(52);
    gs.print(dc.getEndDateTime());

    2012-04-17 20:57:27

    기간 계산기 - getSeconds( )

    this.secondscalcDuration/calcRelativeDuration에 의해 설정된 속성을 반환합니다. 즉, 해당 기간 동안 수행할 총 작업 시간(초)을 나타냅니다.

    시작 시간과 종료 시간 사이의 총 시간이 아니라 총 작업 시간이며 작업 시간의 백분율을 결정하는 데 사용할 수 있습니다.

    표 14. 매개변수
    이름 유형 설명
    없음
    표 15. 반환
    유형 설명
    번호 총 작업 시간(초)입니다.
    var startDateTime = new GlideDateTime("2020-11-02 11:00:00");
    // Instantiate a new GlideDateTime object which has the end date as the current date and time
    var endDateTime = new GlideDateTime(); 
    var dur = new DurationCalculator();
    
    // Set 9-5 weekday schedule. This is the schedule in which endDateTime, seconds, and totalseconds is set
    dur.setSchedule('08fcd0830a0a0b2600079f56b1adb9ae'); 
    dur.calcScheduleDuration(startDateTime, endDateTime);
    var secs = dur.getSeconds();
    var totalSecs = dur.getTotalSeconds();
    
    gs.print("***SCHEDULE DURATION: SECS=" + secs + " TOTALSECS=" + totalSecs + " ENDTIME = " + endDateTime);

    출력

    ***SCHEDULE DURATION: SECS=293734.24 TOTALSECS=970534 ENDTIME = 2020-11-13 16:35:34

    기간 계산기 - getTotalSeconds( )

    totalSecondscalculate(record) 호출에 의해 설정된 값을 반환합니다.

    totalSeconds 속성은 작업 시간과 비작업을 모두 포함하는 기간의 시작 시간과 종료 시간 사이의 총 시간(초)을 나타냅니다.

    표 16. 매개변수
    이름 유형 설명
    없음
    표 17. 반환
    유형 설명
    번호 총 시간(초)입니다.
    var startDateTime = new GlideDateTime("2020-11-02 11:00:00");
    // Instantiate a new GlideDateTime object which has the end date as the current date and time
    var endDateTime = new GlideDateTime(); 
    var dur = new DurationCalculator();
    
    // Set 9-5 weekday schedule. This is the schedule in which endDateTime, seconds, and totalseconds is set
    dur.setSchedule('08fcd0830a0a0b2600079f56b1adb9ae'); 
    dur.calcScheduleDuration(startDateTime, endDateTime);
    var secs = dur.getSeconds();
    var totalSecs = dur.getTotalSeconds();
    
    gs.print("***SCHEDULE DURATION: SECS=" + secs + " TOTALSECS=" + totalSecs + " ENDTIME = " + endDateTime);

    출력

    ***SCHEDULE DURATION: SECS=293734.24 TOTALSECS=970534 ENDTIME = 2020-11-13 16:35:34

    DurationCalculator - isAfter(GlideDateTime dt, String, tm)

    전달된 시간을 전달된 GlideDateTime 객체의 시간 값과 비교합니다.

    표 18. 매개변수
    이름 유형 설명
    DT GlideDateTime 또는 String 전달된 값과 비교할 tm GlideDateTime 객체 또는 표시 값 날짜 및 시간입니다. 표시 값 날짜 및 시간을 전달하면 메서드는 이를 GlideDateTime 개체로 변환합니다.
    티엠 문자열 GlideDateTime 객체의 시간 값과 비교할 시간 값을 표시합니다. 같은 날짜를 가정합니다.

    형식: HH:mm:ss

    표 19. 반환
    유형 설명
    부울 전달된 시간 값()tm이 GlideDateTime 객체()dt의 시간 이후인지를 나타내는 플래그입니다.
    가능한 값:
    • true: tm 이후입니다 dt.
    • false tm 는 다음에 오지 않습니다 dt.
    var dc = new DurationCalculator();
    gs.print(dc.isAfter("2020-04-10 08:00:00", "09:00:00"));

    스크립트: true

    DurationCalculator - setSchedule(String schedId, String timezone)

    기한을 계산하는 데 사용할 일정과 시간대를 설정합니다.

    표 20. 매개변수
    이름 유형 설명
    schedId 문자열 설정할 일정의 Sys_id입니다.

    테이블: 일정 [cmn_schedule].

    시간대 문자열 옵션입니다. 설정할 시간대입니다.

    기본값: 사용자의 시간대입니다.

    표 21. 반환
    유형 설명
    void

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    var startDateTime = new GlideDateTime("2020-11-02 11:00:00");
    // Instantiate a new GlideDateTime object which has the end date as the current date and time
    var endDateTime = new GlideDateTime(); 
    var dur = new DurationCalculator();
    
    // Set 9-5 weekday schedule. This is the schedule in which endDateTime, seconds, and totalseconds is set
    dur.setSchedule('08fcd0830a0a0b2600079f56b1adb9ae'); 
    dur.calcScheduleDuration(startDateTime, endDateTime);
    var secs = dur.getSeconds();
    var totalSecs = dur.getTotalSeconds();
    
    gs.print("***SCHEDULE DURATION: SECS=" + secs + " TOTALSECS=" + totalSecs + " ENDTIME = " + endDateTime);

    출력:

    ***SCHEDULE DURATION: SECS=293734.24 TOTALSECS=970534 ENDTIME = 2020-11-13 16:35:34

    DurationCalculator - setStartDateTime(문자열 시작)

    기간 계산의 시작 날짜 및 시간을 설정합니다.

    표 22. 매개변수
    이름 유형 설명
    시작 문자열 후속 계산을 위한 시작 시간 값을 GMT 단위로 표시합니다.
    표 23. 반환
    유형 설명
    void
    var dc = new DurationCalculator();
    dc.setStartDateTime("2020-04-10 08:00:00")

    DurationCalculator - setStartDateTime(GlideDateTime 설명)

    기간 계산의 시작 날짜 및 시간을 설정합니다.

    표 24. 매개변수
    이름 유형 설명
    설명 Glide날짜/시간 후속 계산을 위해 시작 시간(GMT)을 포함하는 GlideDateTime 객체입니다.
    표 25. 반환
    유형 설명
    void
    var startDateTime = new GlideDateTime("2020-11-02 11:00:00"); 
    var dur = new DurationCalculator();
    
    // Set 9-5 weekday schedule.
    dur.setSchedule('08fcd0830a0a0b2600079f56b1adb9ae'); 
    dur.setStartDateTime(startDateTime);

    DurationCalculator - setTimeZone(문자열 시간대)

    기한을 계산하는 데 사용할 시간대를 설정합니다.

    표 26. 매개변수
    이름 유형 설명
    시간대 문자열 시간대의 값입니다.
    표 27. 반환
    유형 설명
    void
    var dc = new DurationCalculator();
    dc.setTimeZone("Los Angeles");