---
sourceDocument: 호주 API 참조
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/api-reference

 Release :

    - australia

ft:locale :

    - ko-KR

ft:publication_title :

    - 호주 API 참조

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# DurationCalculator - 전역

# DurationCalculator - 전역 {#ariaid-title1}

* 릴리스 버전: Australia
* 
* 업데이트 날짜 2026년 03월 12일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 16분

DurationCalculator 스크립트 포함은 기간 및 기한을 계산하는 메서드를 제공합니다.

## DurationCalculator - DurationCalculator( ) {#ariaid-title2}

DurationCalculator 클래스에 대한 생성자입니다.
{#r_DC-DurationCalculator__table_ik1_1kp_4t__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 안 함 |   |   |
[표 1. 매개변수]

{#r_DC-DurationCalculator__table_ik1_1kp_4t}  

    var dc = new DurationCalculator();

## DurationCalculator - calcDuration(숫자 초) {#ariaid-title3}

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

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

| 이름 | 유형 | 설명 |
|-|-|-|
| 초 | 번호 | 종료 날짜 및 시간, 초, 총 시간(초) 값을 계산하기 위해 시작 날짜 및 시간에 추가할 시간(초)입니다. |
[표 2. 매개변수]

{#r_DC-calcDuration_N__table_pw4_gvb_4t} {#r_DC-calcDuration_N__table_qw4_gvb_4t__entry__2}

| 유형 | 설명 |
|-|-|
| 부울 | 입력 값이 숫자가 아닌 경우 False입니다. |
[표 3. 반환]

{#r_DC-calcDuration_N__table_qw4_gvb_4t}  

    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) {#ariaid-title4}

경과된 시작 시간부터 시작하여 현재 일정 및 시간대를 사용하여 일 수를 더하는 기한을 계산합니다.
calcRelativeDuration()에 의해 시작된 상대 기간 정의에서 `calculator.calcRelativeDueDate(calculator.startDateTime, days)`로 호출됩니다. 작업 기한이 결정되면 메서드는 해당 날짜의 전달 endTime 된 시간으로 시간을 설정합니다. 일정에 남은 날짜가 충분하지 않으면 일정의 마지막 날을 사용합니다.
{#r_DC-calcRelativeDueDate_GDT_N_S__table_vw4_gvb_4t__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 시작 | GlideDateTime | 계산의 시작 날짜를 포함하는 GlideDateTime 객체입니다. |
| 일 | 번호 | 시작 날짜에 추가할 일 수입니다. |
| endTime | 문자열 | 계산된 기한에 작업 기한이 되는 시간입니다. 공백이면 기본적으로 작업일 종료로 설정됩니다. 형식: HH:mm:ss |
[표 4. 매개변수]

{#r_DC-calcRelativeDueDate_GDT_N_S__table_vw4_gvb_4t} {#r_DC-calcRelativeDueDate_GDT_N_S__table_ww4_gvb_4t__entry__2}

| 유형 | 설명 |
|-|-|
| 부울 | 완료 날짜가 일정 내에 있는지 여부를 나타내는 플래그입니다. 가능한 값: * true: 완료 날짜가 일정 내에 있습니다. * false: 완료 날짜가 일정을 벗어났습니다. 이 메서드를 호출하기 전에 설정된 일정이 없는 경우 정의되지 않습니다. |
[표 5. 반환]

{#r_DC-calcRelativeDueDate_GDT_N_S__table_ww4_gvb_4t}  

    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) {#ariaid-title5}

지정된 상대 기간 스크립트를 사용하여 기간을 계산합니다.
완료 this.endDateTime 시 및 this.seconds 속성은 계산 결과를 나타내도록 설정됩니다.
{#r_DC-calcRelativeDuration_S__table_rw4_gvb_4t__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| relativeDurationID | 문자열 | 상대 기간 일정의 sys_id입니다(테이블 cmn_relative_duration). |
[표 6. 매개변수]

{#r_DC-calcRelativeDuration_S__table_rw4_gvb_4t} {#r_DC-calcRelativeDuration_S__table_sw4_gvb_4t__entry__2}

| 유형 | 설명 |
|-|-|
| 부울 | 기간 스크립트의 결과입니다. |
[표 7. 반환]

{#r_DC-calcRelativeDuration_S__table_sw4_gvb_4t}  

    var dc = new DurationCalculator();
    dc.calcRelativeDuration('08fcd0830a0a1b2600074f56b1ad7cb');

## DurationCalculator - calcScheduleDuration(String startTime, String endTime) {#ariaid-title6}

이미 지정된 일정 및 선택적으로 재정의된 시간대 내에서 와 startTime 사이의 endTime 기간을 반환합니다.
이 방법은 또한 현재 일정 객체에 , this.seconds및 this.totalSeconds 설정this.endDateTime됩니다.
{#r_DC-calcScheduleDuration_S_S__table_lw4_gvb_4t__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| startTime | 문자열 | 옵션입니다. 종료 시간에 대한 값을 표시합니다. 기본값: 현재 날짜 및 시간을 사용합니다( setStartDateTime()을 사용하여 설정). 이 매개변수가 전달되지 않은 경우 `dur.calcScheduleDuration("", endDateTime);`과 같은 자리 표시자를 전달해야 합니다. |
| endTime | 문자열 | 옵션입니다. 시작 시간에 대한 값을 표시합니다. 기본값: 현재 날짜 및 시간을 사용합니다( setEndDateTime()을 사용하여 설정). |
[표 8. 매개변수]

{#r_DC-calcScheduleDuration_S_S__table_lw4_gvb_4t} {#r_DC-calcScheduleDuration_S_S__table_mw4_gvb_4t__entry__2}

| 유형 | 설명 |
|-|-|
| 번호 | 일정 기간입니다. 이전인 startTime경우 endTime 0을 반환합니다. 단위: 초 |
[표 9. 반환]

{#r_DC-calcScheduleDuration_S_S__table_mw4_gvb_4t}  

    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) {#ariaid-title7}

이미 지정된 일정 및 선택적으로 재정의된 시간대 내에서 와 startTime 사이의 endTime 기간을 반환합니다.
이 방법은 또한 현재 일정 객체에 , this.seconds및 this.totalSeconds 설정this.endDateTime됩니다.
{#r_DC-calcScheduleDuration_GDT_GDT__table_nw4_gvb_4t__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| startTime | GlideDateTime | 옵션입니다. 사용할 시작 시간을 포함하는 GlideDateTime 객체입니다. 기본값: 현재 날짜 및 시간을 사용합니다( setStartDateTime()을 사용하여 설정). 이 매개변수가 전달되지 않은 경우 `dur.calcScheduleDuration("", endDateTime);`과 같은 자리 표시자를 전달해야 합니다. |
| endTime | GlideDateTime | 옵션입니다. 사용할 종료 시간이 포함된 GlideDateTime 객체입니다. 기본값: 현재 날짜 및 시간을 사용합니다( setEndDateTime()을 사용하여 설정). |
[표 10. 매개변수]

{#r_DC-calcScheduleDuration_GDT_GDT__table_nw4_gvb_4t} {#r_DC-calcScheduleDuration_GDT_GDT__table_mw4_gvb_4t__entry__2}

| 유형 | 설명 |
|-|-|
| 번호 | 일정 기간입니다. 이전인 startTime경우 endTime 0을 반환합니다. 단위: 초 |
[표 11. 반환]

{#r_DC-calcScheduleDuration_GDT_GDT__table_mw4_gvb_4t}  

    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 - getEndDateTime( ) {#ariaid-title8}

calcDuration/calcRelativeDuration으로 설정된 속성을 가져옵니다endDateTime. 기간의 종료 날짜 및 시간을 나타냅니다.
{#r_DC-getEndDateTime__table_gvv_nlz_nt__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 안 함 |   |   |
[표 12. 매개변수]

{#r_DC-getEndDateTime__table_gvv_nlz_nt} {#r_DC-getEndDateTime__table_hvv_nlz_nt__entry__2}

| 유형 | 설명 |
|-|-|
| GlideDateTime | 종료 날짜/시간입니다. |
[표 13. 반환]

{#r_DC-getEndDateTime__table_hvv_nlz_nt}  

    var dc = new DurationCalculator();
    dc.calcDuration(52);
    gs.print(dc.getEndDateTime());

2012-04-17 20:57:27

## DurationCalculator - getSeconds( ) {#ariaid-title9}

calcDuration/calcRelativeDuration으로 설정된 속성을 반환 this.seconds 합니다. 이는 해당 기간 동안 수행할 작업의 총 시간(초)을 나타냅니다.
이 시간은 시작 시간과 종료 시간 사이의 총 시간이 아니라 총 작업 시간이며 작업 시간의 백분율을 결정하는 데 사용될 수 있습니다.
{#r_DC-getSeconds__table_ivv_nlz_nt__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 안 함 |   |   |
[표 14. 매개변수]

{#r_DC-getSeconds__table_ivv_nlz_nt} {#r_DC-getSeconds__table_jvv_nlz_nt__entry__2}

| 유형 | 설명 |
|-|-|
| 번호 | 총 작업 시간(초)입니다. |
[표 15. 반환]

{#r_DC-getSeconds__table_jvv_nlz_nt}  

    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 - getTotalSeconds( ) {#ariaid-title10}

calculate(record) 호출에 의해 설정된 값을 반환 totalSeconds 합니다.
이 속성은 totalSeconds 작업과 비작업을 모두 포함하는 기간의 시작 시간과 종료 시간 사이의 총 시간(초)을 나타냅니다.
{#r_DC-getTotalSeconds__table_qjq_bs1_4t__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 안 함 |   |   |
[표 16. 매개변수]

{#r_DC-getTotalSeconds__table_qjq_bs1_4t} {#r_DC-getTotalSeconds__table_rjq_bs1_4t__entry__2}

| 유형 | 설명 |
|-|-|
| 번호 | 총 시간(초)입니다. |
[표 17. 반환]

{#r_DC-getTotalSeconds__table_rjq_bs1_4t}  

    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) {#ariaid-title11}

전달된 GlideDateTime 객체의 시간 값과 전달된 시간을 비교합니다.
{#r_DC-isAfter_GDT_S__table_tw4_gvb_4t__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| DT | GlideDateTime 또는 문자열 | 전달된 tm 값과 비교할 GlideDateTime 객체 또는 표시 값 날짜 및 시간입니다. 표시 값 날짜 및 시간을 전달하면 메서드는 이를 GlideDateTime 개체로 변환합니다. |
| TM | 문자열 | GlideDateTime 객체의 시간 값과 비교할 시간에 대한 값을 표시합니다. 날짜가 동일하다고 가정합니다. 형식: HH:mm:ss |
[표 18. 매개변수]

{#r_DC-isAfter_GDT_S__table_tw4_gvb_4t} {#r_DC-isAfter_GDT_S__table_uw4_gvb_4t__entry__2}

| 유형 | 설명 |
|-|-|
| 부울 | 전달된 시간 값(tm)이 GlideDateTime 객체(dt)의 시간 이후인지 여부를 나타내는 플래그입니다. 가능한 값: * True: tm 이후 입니다 dt. * false tm 는 다음에 dt있지 않습니다. |
[표 19. 반환]

{#r_DC-isAfter_GDT_S__table_uw4_gvb_4t}  

    var dc = new DurationCalculator();
    gs.print(dc.isAfter("2020-04-10 08:00:00", "09:00:00"));

스크립트: true

## DurationCalculator - setSchedule(String schedId, String timezone) {#ariaid-title12}

기한을 계산하는 데 사용할 일정과 시간대를 설정합니다.
{#r_DC-setSchedule_S_S__table_y5v_nlz_nt__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| schedId | 문자열 | 설정할 일정의 Sys_id입니다. 테이블: 일정 \[cmn_schedule\]. |
| 시간대 | 문자열 | 옵션입니다. 설정할 시간대입니다. 기본값: 사용자의 시간대입니다. |
[표 20. 매개변수]

{#r_DC-setSchedule_S_S__table_y5v_nlz_nt} {#r_DC-setSchedule_S_S__table_z5v_nlz_nt__entry__2}

| 유형 | 설명 |
|-|-|
| 무효 |   |
[표 21. 반환]

{#r_DC-setSchedule_S_S__table_z5v_nlz_nt}  
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    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(String start) {#ariaid-title13}

기간 계산의 시작 날짜와 시간을 설정합니다.
{#r_DC-setStartDateTime_S__table_cvv_nlz_nt__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 시작 | 문자열 | 후속 계산을 위해 시작 시간의 값을 GMT로 표시합니다. |
[표 22. 매개변수]

{#r_DC-setStartDateTime_S__table_cvv_nlz_nt} {#r_DC-setStartDateTime_S__table_dvv_nlz_nt__entry__2}

| 유형 | 설명 |
|-|-|
| 무효 |   |
[표 23. 반환]

{#r_DC-setStartDateTime_S__table_dvv_nlz_nt}  

    var dc = new DurationCalculator();
    dc.setStartDateTime("2020-04-10 08:00:00")

## DurationCalculator - setStartDateTime(GlideDateTime 설명) {#ariaid-title14}

기간 계산의 시작 날짜와 시간을 설정합니다.
{#r_DC-setStartDateTime_GDT_N__table_evv_nlz_nt__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 설명 | GlideDateTime | 후속 계산을 위해 시작 시간(GMT)을 포함하는 GlideDateTime 객체입니다. |
[표 24. 매개변수]

{#r_DC-setStartDateTime_GDT_N__table_evv_nlz_nt} {#r_DC-setStartDateTime_GDT_N__table_fvv_nlz_nt__entry__2}

| 유형 | 설명 |
|-|-|
| 무효 |   |
[표 25. 반환]

{#r_DC-setStartDateTime_GDT_N__table_fvv_nlz_nt}  

    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(문자열 시간대) {#ariaid-title15}

기한을 계산하는 데 사용할 시간대를 설정합니다.
{#r_DC-setTimeZone_S__table_avv_nlz_nt__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 시간대 | 문자열 | 시간대의 값입니다. |
[표 26. 매개변수]

{#r_DC-setTimeZone_S__table_avv_nlz_nt} {#r_DC-setTimeZone_S__table_bvv_nlz_nt__entry__2}

| 유형 | 설명 |
|-|-|
| 무효 |   |
[표 27. 반환]

{#r_DC-setTimeZone_S__table_bvv_nlz_nt}  

    var dc = new DurationCalculator();
    dc.setTimeZone("Los Angeles");


