DurationCalculator : Global

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 7 Minuten Lesedauer
  • Die DurationCalculator -Skripteinbindung bietet Methoden zum Berechnen von Dauern und Fälligkeitsdaten.

    DurationCalculator – DurationCalculator()

    Konstruktor für DurationCalculator-Klasse.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    Keine
    var dc = new DurationCalculator();

    DurationCalculator – calcDuration(Number seconds)

    Berechnet ein Enddatum und eine Endzeit basierend auf dem aktuellen Startdatum und der aktuellen Startzeit und der übergebenen Dauer (Sekunden).

    Diese Methode legt auch die Eigenschaften this.endDateTime, this.secondsund this.totalSeconds mit den aktualisierten Werten fest. Die Eigenschaft seconds stellt die Gesamtanzahl der Sekunden der Arbeit dar, die in der Dauer basierend auf dem Arbeitszeitplan ausgeführt werden soll. Die Eigenschaft totalSeconds stellt die Gesamtanzahl der Sekunden zwischen der Start- und Endzeit der Dauer dar, die sowohl Arbeit als auch Nicht-Arbeit umfasst.

    Bevor Sie diese Methode aufrufen, müssen Sie setStartDateTime() mit der Startzeit aufrufen, die für die Dauer verwendet werden soll.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    seconds Nummer Anzahl der Sekunden, die zum Startdatum und zur Startzeit addiert werden, um das Enddatum und die Endzeit, die Sekunden und die Gesamtsekundenwerte zu berechnen.
    Tabelle : 3. Rückgaben
    Typ Beschreibung
    Boolean „Falsch“, wenn der Eingabewert keine Zahl ist.
    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);

    Ausgabe

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

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

    Berechnet das Fälligkeitsdatum ab der übergebenen Startzeit und addiert die Anzahl der Tage unter Verwendung des aktuellen Zeitplans und der Zeitzone.

    Wird initiiert von calcRelativeDuration() als calculator.calcRelativeDueDate(calculator.startDateTime, days) aus relativen Dauerdefinitionen aufgerufen. Sobald der Tag bestimmt ist, an dem die Arbeit fällig ist, legt die Methode die Uhrzeit auf den übergebenen endTime dieses Tages fest. Wenn im Zeitplan nicht mehr genügend Tage vorhanden sind, wird der letzte Tag im Zeitplan verwendet.

    Tabelle : 4. Parameter
    Name Typ Beschreibung
    start GlideDateTime GlideDateTime-Objekt, das das Startdatum für die Berechnung enthält.
    days Nummer Anzahl der Tage, die dem Startdatum hinzugefügt werden sollen.
    endTime Zeichenfolge Uhrzeit, zu der die Arbeit am berechneten Fälligkeitsdatum fällig ist.

    Wenn leer, wird standardmäßig das Ende des Arbeitstags verwendet.

    Format: HH:mm:ss

    Tabelle : 5. Rückgaben
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob das Abschlussdatum innerhalb des Zeitplans liegt.
    Mögliche Werte:
    • „wahr“: Abschlussdatum liegt innerhalb des Zeitplans.
    • „falsch“: Abschlussdatum liegt außerhalb des Zeitplans. Nicht definiert, wenn vor dem Aufruf dieser Methode kein Zeitplan festgelegt wurde.
    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)

    Berechnet die Dauer mithilfe des angegebenen Skripts für die relative Dauer.

    Nach Abschluss werden die Eigenschaften this.endDateTime und this.seconds festgelegt, um die Ergebnisse der Berechnung anzugeben.

    Tabelle : 6. Parameter
    Name Typ Beschreibung
    relativeDurationID Zeichenfolge sys_id des relativen Zeitplans (Tabelle „cmn_relative_duration“).
    Tabelle : 7. Rückgaben
    Typ Beschreibung
    Boolean Das Ergebnis des Duration-Skripts.
    var dc = new DurationCalculator();
    dc.calcRelativeDuration('08fcd0830a0a1b2600074f56b1ad7cb');

    DurationCalculator – calcScheduleDuration(String startTime, String endTime)

    Gibt die Dauer zwischen dem startTime und dem endTime innerhalb des bereits angegebenen Zeitplans und der optional überschriebenen Zeitzone zurück.

    Diese Methode legt auch this.endDateTime, this.secondsund this.totalSeconds im aktuellen Zeitplanobjekt fest.

    Tabelle : 8. Parameter
    Name Typ Beschreibung
    startTime Zeichenfolge Optional. Anzeigewert für die Endzeit.

    Standard: Verwendet das aktuelle Datum und die aktuelle Uhrzeit (festgelegt mit setStartDateTime()). Sie müssen einen Platzhalter übergeben, wenn dieser Parameter nicht übergeben wurde, z. B. dur.calcScheduleDuration("", endDateTime);.

    endTime Zeichenfolge Optional. Anzeigewert für die Startzeit.

    Standard: Verwendet das aktuelle Datum und die aktuelle Uhrzeit (festgelegt mit setEndDateTime()).

    Tabelle : 9. Rückgaben
    Typ Beschreibung
    Nummer Zeitplandauer. Gibt 0 zurück, wenn endTime vor startTimeliegt.

    Einheit: Sekunden

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

    Ausgabe

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

    DurationCalculator –calcScheduleDuration(GlideDateTime startTime, GlideDateTime endTime)

    Gibt die Dauer zwischen dem startTime und dem endTime innerhalb des bereits angegebenen Zeitplans und der optional überschriebenen Zeitzone zurück.

    Diese Methode legt auch this.endDateTime, this.secondsund this.totalSeconds im aktuellen Zeitplanobjekt fest.

    Tabelle : 10. Parameter
    Name Typ Beschreibung
    startTime GlideDateTime Optional. GlideDateTime-Objekt, das die zu verwendende Startzeit enthält.

    Standard: Verwendet das aktuelle Datum und die aktuelle Uhrzeit (festgelegt mit setStartDateTime()). Sie müssen einen Platzhalter übergeben, wenn dieser Parameter nicht übergeben wurde, z. B. dur.calcScheduleDuration("", endDateTime);.

    endTime GlideDateTime Optional. GlideDateTime-Objekt, das die zu verwendende Endzeit enthält.

    Standard: Verwendet das aktuelle Datum und die aktuelle Uhrzeit (festgelegt mit setEndDateTime()).

    Tabelle : 11. Rückgaben
    Typ Beschreibung
    Nummer Zeitplandauer. Gibt 0 zurück, wenn endTime vor startTimeliegt.

    Einheit: Sekunden

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

    Ausgabe

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

    DurationCalculator – getEndDateTime()

    Ruft die voncalcDuration/calcRelativeDurationfestgelegte Eigenschaft endDateTime ab und gibt das Enddatum und die Enduhrzeit für die Dauer an.

    Tabelle : 12. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 13. Ergebnisse
    Typ Beschreibung
    GlideDateTime Das Enddatum/die Endzeit.
    var dc = new DurationCalculator();
    dc.calcDuration(52);
    gs.print(dc.getEndDateTime());

    2012-04-17 20:57:27

    DurationCalculator – getSeconds()

    Gibt die Eigenschaft this.seconds zurück, die durchcalcDuration/calcRelativeDurationfestgelegt wurde und die Gesamtzahl der Sekunden der Arbeit angibt, die für die Dauer ausgeführt werden sollen.

    Dies ist die Gesamtarbeitszeit, nicht die Gesamtzeit zwischen Start- und Endzeit, und kann zur Bestimmung von Prozentsätzen der Arbeitszeit verwendet werden.

    Tabelle : 14. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 15. Ergebnisse
    Typ Beschreibung
    Zahl Die Gesamtarbeitszeit in Sekunden.
    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);

    Ausgabe

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

    DurationCalculator – getTotalSeconds()

    Gibt den Wert totalSeconds zurück, der durch einen Aufruf vonCalculation (record)festgelegt wurde.

    Die Eigenschaft totalSeconds stellt die Gesamtanzahl der Sekunden zwischen der Start- und Endzeit der Dauer dar, die sowohl Arbeit als auch Nicht-Arbeit umfasst.

    Tabelle : 16. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 17. Ergebnisse
    Typ Beschreibung
    Zahl Die Gesamtanzahl der Sekunden.
    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);

    Ausgabe

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

    DurationCalculator – isAfter(GlideDateTime dt, String tm)

    Vergleicht die übergebene Zeit mit dem Zeitwert im übergebenen GlideDateTime-Objekt.

    Tabelle : 18. Parameter
    Name Typ Beschreibung
    dt GlideDateTime oder Zeichenfolge Entweder ein GlideDateTime-Objekt oder ein Anzeigewert (Datum und Uhrzeit) für den Vergleich mit dem in tm übergebenen Wert. Wenn Sie einen Anzeigewert für Datum und Uhrzeit übergeben, wird dieser von der Methode in ein GlideDateTime-Objekt konvertiert.
    tm Zeichenfolge Anzeigewert für die Zeit zum Vergleich mit dem Zeitwert im GlideDateTime-Objekt. Geht von demselben Datum aus.

    Format: HH:mm:ss

    Tabelle : 19. Rückgaben
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob der übergebene Zeitwert (tm) nach der Uhrzeit im GlideDateTime-Objekt (dt) liegt.
    Mögliche Werte:
    • wahr: tm liegt nach dt.
    • false tm liegt nicht nach dt.
    var dc = new DurationCalculator();
    gs.print(dc.isAfter("2020-04-10 08:00:00", "09:00:00"));

    *** Skript: true

    DurationCalculator – setSchedule(String schedId, String timezone)

    Legt den Zeitplan und die Zeitzone für die Berechnung des Fälligkeitsdatums fest.

    Tabelle : 20. Parameter
    Name Typ Beschreibung
    schedId Zeichenfolge Sys_id des festzulegenden Zeitplans.

    Tabelle: Zeitplan [cmn_schedule]

    Zeitzone Zeichenfolge Optional. Festzulegende Zeitzone.

    Standard: Zeitzone des Anwenders.

    Tabelle : 21. Rückgaben
    Typ Beschreibung
    void

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

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

    Ausgabe:

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

    DurationCalculator – setStartDateTime(String start)

    Legt Startdatum und -uhrzeit für Berechnungen der Dauer fest.

    Tabelle : 22. Parameter
    Name Typ Beschreibung
    start Zeichenfolge Anzeigewert für die Startzeit in GMT für nachfolgende Berechnungen.
    Tabelle : 23. Rückgaben
    Typ Beschreibung
    void
    var dc = new DurationCalculator();
    dc.setStartDateTime("2020-04-10 08:00:00")

    DurationCalculator – setStartDateTime(GlideDateTime description)

    Legt Startdatum und -uhrzeit für Berechnungen der Dauer fest.

    Tabelle : 24. Parameter
    Name Typ Beschreibung
    description GlideDateTime GlideDateTime-Objekt, das die Startzeit in GMT für nachfolgende Berechnungen enthält.
    Tabelle : 25. Rückgaben
    Typ Beschreibung
    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(String timezone)

    Legt die Zeitzone für die Berechnung des Fälligkeitsdatums fest.

    Tabelle : 26. Parameter
    Name Typ Beschreibung
    timezone Zeichenfolge Wert der Zeitzone.
    Tabelle : 27. Ergebnisse
    Typ Beschreibung
    void
    var dc = new DurationCalculator();
    dc.setTimeZone("Los Angeles");