DurationCalculator : global

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 8 minutes de lecture
  • L’API DurationCalculator fournit des méthodes de calcul des durées et des dates d’échéance.

    DurationCalculator : calcDuration(Nombre de secondes)

    Calcule une date et une heure de fin en fonction de la date et de l’heure de début actuelles et de la durée transmise (secondes).

    Cette méthode définit également les propriétés , this.secondset this.totalSeconds avec this.endDateTimeles valeurs mises à jour. Avant d’appeler cette méthode, vous devez appeler setStartDateTime() avec l’heure de début à utiliser dans le calcul.

    Tableau 1. Paramètres
    Nom Type Description
    secondes Numéro Nombre de secondes à ajouter à la date et à l’heure de début pour calculer la date et l’heure de fin, les secondes et le total des secondes.
    Tableau 2. Renvoie
    Type Description
    Booléen Faux si la valeur d’entrée n’est pas un nombre.
    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);

    Sortie

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

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

    Calcule la date d’échéance à partir de l’heure de début transmise et en ajoutant le nombre de jours à l’aide du calendrier et du fuseau horaire actuels.

    Appelé à partir de définitions de durée relative, initié par calcRelativeDuration(), comme calculator.calcRelativeDueDate(calculator.startDateTime, days). Une fois que le jour d’échéance du travail est déterminé, la méthode définit l’heure à la date d’entrée endTime de ce jour. S’il ne reste pas assez de jours dans le calendrier, utilise le dernier jour du calendrier.

    Tableau 3. Paramètres
    Nom Type Description
    début GlideDateTime Objet GlideDateTime qui contient la date de début du calcul.
    jours Numéro Nombre de jours à ajouter à la date de début.
    endTime Chaîne Heure de la journée à laquelle le travail est dû à la date d’échéance calculée.

    Si le champ est vide, la valeur par défaut est la fin de la journée de travail.

    Format : HH :mm :ss

    Tableau 4. Renvoie
    Type Description
    Booléen Marqueur indiquant si la date d’achèvement se trouve dans le calendrier.
    Valeurs possibles :
    • true : la date d’achèvement se trouve dans le calendrier.
    • false : la date d’achèvement se situe en dehors du calendrier. Non défini si aucune planification n’a été définie avant d’appeler cette méthode.
    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)

    Calcule la durée à l’aide du script de durée relative spécifié.

    Une fois l’opération terminée, les this.endDateTime propriétés and this.seconds sont définies pour indiquer les résultats du calcul.

    Tableau 5. Paramètres
    Nom Type Description
    relativeDurationID Chaîne sys_id du calendrier des durées relatives (tableau cmn_relative_duration).
    Tableau 6. Renvoie
    Type Description
    Booléen Résultat du script de durée.
    var dc = new DurationCalculator();
    dc.calcRelativeDuration('08fcd0830a0a1b2600074f56b1ad7cb');

    DurationCalculator : calcScheduleDuration(String startTime, String endTime)

    Renvoie la durée comprise entre le startTime et le endTime dans la planification déjà spécifiée et le fuseau horaire éventuellement remplacé.

    Cette méthode définit this.endDateTimeégalement , this.seconds, et this.totalSeconds dans l’objet de calendrier actuel.

    Tableau 7. Paramètres
    Nom Type Description
    startTime Chaîne Facultatif. Valeur d’affichage pour l’heure de fin.

    Par défaut : utilise la date et l’heure actuelles (définies à l’aide de setStartDateTime()). Si ce paramètre n’est pas passé, vous devez lui transmettre un espace réservé, tel que dur.calcScheduleDuration(«  », endDateTime) ;.

    endTime Chaîne Facultatif. Affichez la valeur de l’heure de début.

    Par défaut : utilise la date et l’heure actuelles (définies à l’aide de setEndDateTime()).

    Tableau 8. Renvoie
    Type Description
    Numéro Durée du calendrier. Renvoie 0 si endTime la valeur est antérieure startTimeà .

    Unité : Secondes

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

    Sortie

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

    DurationCalculator : calcScheduleDuration(GlideDateTime startTime, GlideDateTime endTime)

    Renvoie la durée comprise entre le startTime et le endTime dans la planification déjà spécifiée et le fuseau horaire éventuellement remplacé.

    Cette méthode définit this.endDateTimeégalement , this.seconds, et this.totalSeconds dans l’objet de calendrier actuel.

    Tableau 9. Paramètres
    Nom Type Description
    startTime GlideDateTime Facultatif. Objet GlideDateTime qui contient l’heure de début à utiliser.

    Par défaut : utilise la date et l’heure actuelles (définies à l’aide de setStartDateTime()). Si ce paramètre n’est pas passé, vous devez lui transmettre un espace réservé, tel que dur.calcScheduleDuration(«  », endDateTime) ;.

    endTime GlideDateTime Facultatif. GlideDateTime qui contient l’heure de fin à utiliser.

    Par défaut : utilise la date et l’heure actuelles (définies à l’aide de setEndDateTime()).

    Tableau 10. Renvoie
    Type Description
    Numéro Durée du calendrier. Renvoie 0 si endTime la valeur est antérieure startTimeà .

    Unité : Secondes

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

    Sortie

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

    DurationCalculator : DurationCalculator( )

    Constructeur de la classe DurationCalculator .

    Tableau 11. Paramètres
    Nom Type Description
    Néant
    var dc = new DurationCalculator();

    DurationCalculator : getEndDateTime( )

    Obtient la endDateTime propriété qui a été définie par calcDuration/calcRelativeDuration, indiquant la date et l’heure de fin de la durée.

    Tableau 12. Paramètres
    Nom Type Description
    Aucun
    Tableau 13. Renvoie
    Type Description
    GlideDateTime La date/l’heure de fin.
    var dc = new DurationCalculator();
    dc.calcDuration(52);
    gs.print(dc.getEndDateTime());

    2012-04-17 20:57:27

    DurationCalculator : getSeconds( )

    Renvoie la this.seconds propriété définie par calcDuration/calcRelativeDuration, indiquant le nombre total de secondes de travail à effectuer pour la durée.

    Il s’agit du temps de travail total, et non du temps total entre les heures de début et de fin, et peut être utilisé pour déterminer des pourcentages du temps de travail.

    Tableau 14. Paramètres
    Nom Type Description
    Aucun
    Tableau 15. Renvoie
    Type Description
    Numéro Le temps de travail total, en secondes.
    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);

    Sortie

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

    DurationCalculator : getTotalSeconds( )

    Renvoie la totalSeconds valeur qui a été définie par un appel à calculate(record).

    Tableau 16. Paramètres
    Nom Type Description
    Aucun
    Tableau 17. Renvoie
    Type Description
    Numéro Nombre total de secondes.
    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);

    Sortie

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

    DurationCalculator - isAfter(GlideDateTime dt, String tm)

    Compare le temps passé à la valeur time de l’objet GlideDateTime transmis.

    Tableau 18. Paramètres
    Nom Type Description
    Dt GlideDateTime ou chaîne Il s’agit soit d’un objet GlideDateTime, soit d’une date et d’une heure de valeur d’affichage à comparer à la valeur transmise tm . Si vous transmettez une date et une heure de valeur d’affichage, la méthode la convertit en objet GlideDateTime.
    Tm Chaîne Affichez la valeur du temps à comparer à la valeur du temps dans l’objet GlideDateTime. Suppose la même date.

    Format : HH :mm :ss

    Tableau 19. Renvoie
    Type Description
    Booléen Marqueur indiquant si la valeur de temps transmise (tm) est postérieure à l’heure de l’objet GlideDateTime (dt).
    Valeurs possibles :
    • true : tm est postérieur dtà .
    • faux tm n’est pas après dt.
    var dc = new DurationCalculator();
    gs.print(dc.isAfter("2020-04-10 08:00:00", "09:00:00"));

    Script : vrai

    DurationCalculator : setSchedule(String schedId, String timezone)

    Définit le calendrier et le fuseau horaire à utiliser pour calculer la date d’échéance.

    Tableau 20. Paramètres
    Nom Type Description
    schedId (en anglais seulement) Chaîne Sys_id du calendrier à définir. Situé dans la table Calendrier [cmn_schedule].
    fuseau horaire Chaîne Facultatif. Fuseau horaire à définir.

    Par défaut : fuseau horaire de l’utilisateur.

    Tableau 21. Renvoie
    Type Description
    nul
    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);

    Sortie

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

    DurationCalculator : setStartDateTime(début de la chaîne)

    Définit la date et l’heure de début des calculs de durée.

    Tableau 22. Paramètres
    Nom Type Description
    début Chaîne Affichez la valeur de l’heure de début en GMT pour les calculs ultérieurs.
    Tableau 23. Renvoie
    Type Description
    nul
    var dc = new DurationCalculator();
    dc.setStartDateTime("2020-04-10 08:00:00")

    DurationCalculator : setStartDateTime(description de GlideDateTime)

    Définit la date et l’heure de début des calculs de durée.

    Tableau 24. Paramètres
    Nom Type Description
    description GlideDateTime Objet GlideDateTime qui contient l’heure de début au format GMT pour les calculs ultérieurs.
    Tableau 25. Renvoie
    Type Description
    nul
    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(String timezone)

    Définit le fuseau horaire à utiliser pour calculer la date d’échéance.

    Tableau 26. Paramètres
    Nom Type Description
    fuseau horaire Chaîne Valeur du fuseau horaire.
    Tableau 27. Renvoie
    Type Description
    nul
    var dc = new DurationCalculator();
    dc.setTimeZone("Los Angeles");