DurationCalculator - Global

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 8 min. de leitura
  • A API DurationCalculator fornece métodos para calcular durações e datas de vencimento.

    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 as propriedades this.endDateTime, this.secondse this.totalSeconds com os valores atualizados. Antes de chamar este método, você deve chamar setStartDateTime() com a hora de início a ser usada no cálculo.

    Tabela 1. 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 2. Retorna
    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(GlideDateTime start, Number days, String 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 a partir de definições de duração relativa, iniciadas por calcRelativeDuration(), como calculadora.calculAtivaDueDue(calculator.startDateTime, dias). Depois que o dia em que o trabalho vence é determinado, o método define a hora como passada em endTime desse dia. Se não houver dias suficientes restantes na programação, o usará o último dia da programação.

    Tabela 3. 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 a serem adicionados à 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 final do dia de trabalho.

    Formato: HH:mm:ss

    Tabela 4. Retorna
    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. Indefinido se nenhuma programação foi 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, as propriedades this.endDateTime e this.seconds são definidas para indicar os resultados do cálculo.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    ID da duração relativa Cadeia de caracteres sys_id da programação de duração relativa (tabela cmn_relative_duration).
    Tabela 6. Retorna
    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 startTime e endTime na programação já especificada e, opcionalmente, no fuso horário substituído.

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

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    startTime Cadeia de caracteres Opcional. Exibe o valor da hora de término.

    Padrão: usa a data e hora atuais (definidas usando setStartDateTime()). Você deve passar um espaço reservado se este parâmetro não for aprovado, como dur.calculScheduleDuration("", endDateTime);.

    endTime Cadeia de caracteres Opcional. Exibe o valor da hora de início.

    Padrão: usa a data e hora atuais (definidas usando setEndDateTime()).

    Tabela 8. Retorna
    Tipo Descrição
    Número Duração da programação. Retorna 0 se endTime for anterior startTimea .

    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 startTime e endTime na programação já especificada e, opcionalmente, no fuso horário substituído.

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

    Tabela 9. 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 hora atuais (definidas usando setStartDateTime()). Você deve passar um espaço reservado se este parâmetro não for aprovado, como dur.calculScheduleDuration("", endDateTime);.

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

    Padrão: usa a data e hora atuais (definidas usando setEndDateTime()).

    Tabela 10. Retorna
    Tipo Descrição
    Número Duração da programação. Retorna 0 se endTime for anterior startTimea .

    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 - DurationCalculator( )

    Construtor da classe DurationCalculator.

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

    DurationCalculator - getEndDateTime( )

    Obtém a propriedade endDateTime que foi definida por calcDuration/calcRelativeDuration, indicando a data e hora de término da duração.

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

    2012-04-17 20:57:27

    DurationCalculator - getSeconds( )

    Retorna a propriedade this.seconds que foi definida por calcDuration/calcRelativeDuration, indicando o número total de segundos de trabalho a ser realizado para a duração.

    Este é o tempo total de trabalho, não o tempo total entre os horários 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 o valor totalSeconds que foi definido por uma chamada para calcular(record).

    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, String tm)

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

    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 valor passado tm. 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 Exiba o valor de tempo para comparar com o valor de tempo no objeto GlideDateTime. Assume a mesma data.

    Formato: HH:mm:ss

    Tabela 19. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se o valor de tempo passado (tm) é posterior à hora no objeto GlideDateTime (dt).
    Valores possíveis:
    • verdadeiro: tm é depois de dt.
    • falso tm não está depois de dt.
    var dc = new DurationCalculator();
    gs.print(dc.isAfter("2020-04-10 08:00:00", "09:00:00"));

    *** Script: verdadeiro

    DurationCalculator - setSchedule(cadeia de caracteres schedId, cadeia de caracteres fuso horário)

    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. Localizado na tabela Programação [cmn_schedule].
    fuso horário Cadeia de caracteres Opcional. Fuso horário a ser definido.

    Padrão: fuso horário do usuário.

    Tabela 21. Retorna
    Tipo Descrição
    vazio
    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(cadeia de caracteres start)

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

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

    DurationCalculator - setStartDateTime(descrição de GlideDateTime)

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

    Tabela 24. Parâmetros
    Nome Tipo Descrição
    description GlideDateTime Objeto GlideDateTime que contém a hora de início em GMT para cálculos subsequentes.
    Tabela 25. Retorna
    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 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. Retorna
    Tipo Descrição
    vazio
    var dc = new DurationCalculator();
    dc.setTimeZone("Los Angeles");