DurationCalculator - Global

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 8 min. de leitura
  • . DurationCalculator a inclusão de script fornece métodos para calcular durações e prazos.

    DurationCalculator - DurationCalculator( )

    Construtor para DurationCalculator classe.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    Nenhum
    var dc = new DurationCalculator();

    DurationCalculator - calcDuration(número de segundos)

    Calcula uma data e hora de término com base na data e hora de início atuais e na duração passada (segundos).

    Este método também define this.endDateTime, this.secondse this.totalSecondspropriedades com os valores atualizados. . secondsa propriedade representa o número total de segundos de trabalho a ser realizado na duração com base na programação de trabalho. . totalSecondsa propriedade representa o número total de segundos entre as horas de início e término da duração, o que inclui trabalho e não trabalho.

    Antes de chamar este método, você deve chamar SetStartDateTime() com a hora de início a ser usada para a duração.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    segundos Número Número de segundos a serem adicionados à data e hora de início para calcular os valores de data e hora de término, segundos e total de segundos.
    Tabela 3. Retornos
    Tipo Descrição
    Booliano Falso se o valor de entrada não for um número.
    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);

    Saída

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

    DurationCalculator - calcRelativeDueDate( início GlideDateTime, número de dias, cadeia de caracteres de endTime)

    Calcula a data de vencimento começando na hora de início aprovada e adicionando o número de dias usando a programação e o fuso horário atuais.

    Chamado de definições de duração relativa, iniciado por CalcRelativeDuration() , como calculator.calcRelativeDueDate(calculator.startDateTime, dias) . Quando o dia em que o trabalho vence é determinado, o método define a hora para a passada endTimedesse dia. Se não houver dias suficientes restantes na programação, usará o último dia na programação.

    Tabela 4. Parâmetros
    Nome Tipo Descrição
    início GlideDateTime Objeto GlideDateTime que contém a data de início do cálculo.
    dias Número Número de dias para adicionar à data de início.
    endTime Cadeia de caracteres Hora do dia em que o trabalho vence na data de vencimento calculada.

    Se estiver em branco, o padrão será o fim do dia útil.

    Formato: HH:mm:ss

    Tabela 5. Retornos
    Tipo Descrição
    Booliano Sinalizador que indica se a data de conclusão está dentro da programação.
    Valores possíveis:
    • Verdadeiro: A data de conclusão está dentro da programação.
    • Falso: A data de conclusão está fora da programação. Não definido se nenhuma programação tiver sido definida antes de chamar este método.
    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(cadeia de caracteres relativeDurationID)

    Calcula a duração usando o script de duração relativa especificado.

    Após a conclusão, o this.endDateTimee. this.secondsas propriedades são definidas para indicar os resultados do cálculo.

    Tabela 6. Parâmetros
    Nome Tipo Descrição
    RelativaDurationID Cadeia de caracteres sys_id da programação de duração relativa (tabela cmn_relative_duration).
    Tabela 7. Retornos
    Tipo Descrição
    Booliano O resultado do script de duração.
    var dc = new DurationCalculator();
    dc.calcRelativeDuration('08fcd0830a0a1b2600074f56b1ad7cb');

    DurationCalculator - calcScheduleDuration (cadeia de caracteres startTime, cadeia de caracteres endTime )

    Retorna a duração entre startTimee o. endTimena programação já especificada e fuso horário opcionalmente substituído.

    Este método também define this.endDateTime, this.secondse this.totalSecondsno objeto de programação atual.

    Tabela 8. Parâmetros
    Nome Tipo Descrição
    startTime Cadeia de caracteres Opcional. Valor de exibição da hora de término.

    Padrão: Usa a data e a hora atuais (defina usando SetStartDateTime() ). Se este parâmetro não for aprovado, você deve passar um espaço reservado, como dur.calcScheduleDuration("", endDateTime); .

    endTime Cadeia de caracteres Opcional. Valor de exibição da hora de início.

    Padrão: Usa a data e a hora atuais (defina usando SetEndDateTime() ).

    Tabela 9. Retornos
    Tipo Descrição
    Número Duração da programação. Retorna 0 se endTimeé anterior startTime.

    Unidade: segundos

    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);

    Saída

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

    DurationCalculator - calcScheduleDuration(GlideDateTime startTime, GlideDateTime endTime)

    Retorna a duração entre startTimee o. endTimena programação já especificada e fuso horário opcionalmente substituído.

    Este método também define this.endDateTime, this.secondse this.totalSecondsno objeto de programação atual.

    Tabela 10. Parâmetros
    Nome Tipo Descrição
    startTime GlideDateTime Opcional. Objeto GlideDateTime que contém a hora de início a ser usada.

    Padrão: Usa a data e a hora atuais (defina usando SetStartDateTime() ). Se este parâmetro não for aprovado, você deve passar um espaço reservado, como dur.calcScheduleDuration("", endDateTime); .

    endTime GlideDateTime Opcional. Objeto GlideDateTime que contém a hora de término a ser usada.

    Padrão: Usa a data e a hora atuais (defina usando SetEndDateTime() ).

    Tabela 11. Retornos
    Tipo Descrição
    Número Duração da programação. Retorna 0 se endTimeé anterior startTime.

    Unidade: segundos

    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);

    Saída

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

    DurationCalculator - getEndDateTime( )

    Obtém o. endDateTimepropriedade que foi definida por CalcDuration / CalcRelativeDuration , indicando a data e a hora de término da duração.

    Tabela 12. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 13. Retorna
    Tipo Descrição
    GlideDateTime O fim data/hora .
    var dc = new DurationCalculator();
    dc.calcDuration(52);
    gs.print(dc.getEndDateTime());

    2012-04-17 20:57:27

    DurationCalculator - getSeconds( )

    Retorna this.secondspropriedade que foi definida por CalcDuration / CalcRelativeDuration indicando o número total de segundos de trabalho a ser realizado durante a duração.

    Este é o tempo total de trabalho, não o tempo total entre as horas de início e término e pode ser usado para determinar porcentagens do tempo de trabalho.

    Tabela 14. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 15. Retorna
    Tipo Descrição
    Número O tempo total de trabalho, em segundos.
    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);

    Saída

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

    DurationCalculator - getTotalSeconds( )

    Retorna totalSecondsvalor que foi definido por uma chamada para calcular (registro) .

    . totalSecondsa propriedade representa o número total de segundos entre as horas de início e término da duração, o que inclui trabalho e não trabalho.

    Tabela 16. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 17. Retorna
    Tipo Descrição
    Número O número total de segundos.
    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);

    Saída

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

    DurationCalculator - isAfter(GlideDateTime dt, cadeia de caracteres tm)

    Compara o tempo passado com o valor de tempo no objeto Passado em GlideDateTime.

    Tabela 18. Parâmetros
    Nome Tipo Descrição
    dt GlideDateTime ou Cadeia de caracteres Um objeto GlideDateTime ou uma data e hora de valor de exibição para comparar com o passado tmvalor. Se você passar uma data e hora de valor de exibição, o método o converterá em um objeto GlideDateTime.
    tm Cadeia de caracteres Valor de exibição do tempo a ser comparado com o valor de tempo no objeto GlideDateTime. Assume a mesma data.

    Formato: HH:mm:ss

    Tabela 19. Retornos
    Tipo Descrição
    Booliano Sinalizador que indica se o valor de tempo foi aprovado ( tmApós a hora no objeto GlideDateTime ( dt).
    Valores possíveis:
    • verdadeiro: tmapós dt.
    • falso tmnão é posterior dt.
    var dc = new DurationCalculator();
    gs.print(dc.isAfter("2020-04-10 08:00:00", "09:00:00"));

    Script: Verdadeiro

    DurationCalculator - setSchedId (cadeia de caracteres , fuso horário da cadeia de caracteres)

    Define a programação e o fuso horário a serem usados para calcular a data de vencimento.

    Tabela 20. Parâmetros
    Nome Tipo Descrição
    SchedId Cadeia de caracteres Sys_id da programação a ser definida.

    Tabela: Programação [cmn_schedule].

    fuso horário Cadeia de caracteres Opcional. Fuso horário a ser definido.

    Fuso horário do usuário.

    Tabela 21. Retornos
    Tipo Descrição
    vazio

    O exemplo de código a seguir mostra como chamar este método.

    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);

    Saída:

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

    DurationCalculator - setStartDateTime( início da cadeia de caracteres)

    Define a data e a hora de início dos cálculos de duração.

    Tabela 22. Parâmetros
    Nome Tipo Descrição
    início Cadeia de caracteres Valor de exibição da hora de início em GMT para cálculos subsequentes.
    Tabela 23. Retornos
    Tipo Descrição
    vazio
    var dc = new DurationCalculator();
    dc.setStartDateTime("2020-04-10 08:00:00")

    DurationCalculator - setStartDateTime( descrição GlideDateTime)

    Define a data e a hora de início dos cálculos de duração.

    Tabela 24. Parâmetros
    Nome Tipo Descrição
    descrição GlideDateTime Objeto GlideDateTime que contém a hora de início em GMT para cálculos subsequentes.
    Tabela 25. Retornos
    Tipo Descrição
    vazio
    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(cadeia de caracteres de fuso horário)

    Define o fuso horário a ser usado para calcular a data de vencimento.

    Tabela 26. Parâmetros
    Nome Tipo Descrição
    fuso horário Cadeia de caracteres Valor do fuso horário.
    Tabela 27. Retornos
    Tipo Descrição
    vazio
    var dc = new DurationCalculator();
    dc.setTimeZone("Los Angeles");