Datenschutzhinweis

 

Beim Laden dieses Inhalts werden Nutzungsinformationen an Vimeo übertragen und dort ggf. verarbeitet.

 

             

Datums-Hilfswerkzeuge (fc-plugin-date-utils.jar)

Geändert am Mo, 24 Jun um 12:07 NACHMITTAGS

INHALTSVERZEICHNIS




Mit dem kostenlosen Datums-Hilfswerkzeuge-Plugin für FORMCYCLE besteht die Möglichkeit, Datumsfunktionen, Berechnungen und Validierungen durchzuführen.


Das Plugin befindet sich derzeit noch in der Erprobungsphase und ist ab Version 8.1.0 verfügbar. Es konzentriert sich hauptsächlich auf Datumsberechnungen, die speziell für Deutschland geeignet sind. Derzeit besteht die Einschränkung, dass die Funktionalitäten nicht in Wiederholungen zur Verfügung stehen.


Installation

Die Installation des Plugins ist über die dafür vorgesehene Verwaltungsoberfläche von Plugins durchzuführen. Hierbei muss lediglich die entsprechende Jar-Datei eingespielt werden bzw. aus dem Pluginstore Installiert werden.


Funktionalität

Datumsfunktionen & Berechnungen

Das Plugin enthält eine JavaScript-Bibliothek und stellt eine Reihe von Hilfsfunktionen bereit, die über $.xdate verfügbar sind. 


Zusätzlich bietet der Designer Funktionen zur Konfiguration von Datumsvergleichen. Mit diesen Funktionen kann festgelegt werden, ob ein Datum vor, vor gleich, nach oder nach gleich einem bestimmten Datum liegt. 


Als Parameter können Werte wie 'today' (für das aktuelle Datum), der Name eines Elements (z.B. 'tf1') oder ein Datum im Format TT.MM.JJJJ (z.B. '31.03.2024') verwendet werden. 

Nach der Konfiguration passt sich automatisch der Kalender an, um die ausgewählten Tage im Datepicker anzuzeigen. 



In Kombination mit Berechnungsfeldern können z.B. Funktionen wie

$.xdate.getBusinessDaysBetween([%tfUrlaubVom%], [%tfUrlaubBis%], "bw")

aufgerufen werden, um die Anzahl der Werktage abzüglich von Feiertagen und Wochenenden zu berechnen. Weitere Funktionen können wie Folgt eingesetzt werden:


Funktionen von $.xdate:

  • setFormat(format: string)

    - Beschreibung: Legt das Standard-Datumsformat fest.
    - Parameter:
    - format (string): Das zu setzende Datumsformat.
    - Beispiel:
    $.xdate.setFormat("dd.mm.yy");
  • getFormat()

    - Beschreibung: Ruft das aktuelle Standard-Datumsformat ab.
    - Rückgabewert: Das aktuelle Datumsformat als string.
    - Beispiel:
    const format = $.xdate.getFormat();
  • getDaysDiff(d1: Date|string, d2: Date|string)

    - Beschreibung: Berechnet die Differenz in Tagen zwischen zwei Datumswerten.
    - Parameter:
    - d1 (Date|string): Das erste Datum.
    - d2 (Date|string): Das zweite Datum.
    - Rückgabewert: Die Differenz in Tagen als Ganzzahl.
    - Beispiel:
    const diff = $.xdate.getDaysDiff("10.06.2023", "20.06.2023");
  • getDaysBetween(d1: Date|string, d2: Date|string)

    - Beschreibung: Berechnet die Anzahl der Tage zwischen zwei Datumswerten. Das Ergebnis ist immer positiv.
    - Parameter:
    - d1 (Date|string): Das erste Datum.
    - d2 (Date|string): Das zweite Datum.
    - Rückgabewert: Die Anzahl der Tage als Ganzzahl.
    - Beispiel:
    const days = $.xdate.getDaysBetween("10.06.2023", "20.06.2023");
  • getWeekdaysBetween(d1: Date|string, d2: Date|string)

    - Beschreibung: Berechnet die Anzahl der Werktage zwischen zwei Datumswerten.
    - Parameter:
    - d1 (Date|string): Das erste Datum.
    - d2 (Date|string): Das zweite Datum.
    - Rückgabewert: Die Anzahl der Werktage als Ganzzahl.
    - Beispiel:
    const weekdays = $.xdate.getWeekdaysBetween("10.06.2023", "20.06.2023");
  • getAge(requestedBirthDate: Date|string)

    - Beschreibung: Berechnet das Alter anhand eines Geburtsdatums.
    - Parameter:
    - requestedBirthDate (Date|string): Das Geburtsdatum.
    - Rückgabewert: Das Alter als Ganzzahl.
    - Beispiel:
    const age = $.xdate.getAge("10.06.2000");
  • isDateBefore(d1: Date|string, d2: Date|string)

    - Beschreibung: Überprüft, ob ein Datum vor einem anderen liegt.
    - Parameter:
    - d1 (Date|string): Das erste Datum.
    - d2 (Date|string): Das zweite Datum.
    - Rückgabewert: Ein boolescher Wert, der angibt, ob das erste Datum vor dem zweiten liegt.
    - Beispiel:
    const isBefore = $.xdate.isDateBefore("10.06.2023", "20.06.2023");
  • isDateAfter(d1: Date|string, d2: Date|string)

    - Beschreibung: Überprüft, ob ein Datum nach einem anderen liegt.
    - Parameter:
    - d1 (Date|string): Das erste Datum.
    - d2 (Date|string): Das zweite Datum.
    - Rückgabewert: Ein boolescher Wert, der angibt, ob das erste Datum nach dem zweiten liegt.
    - Beispiel:
    const isAfter = $.xdate.isDateAfter("10.06.2023", "20.06.2023");


  • getDateFormat(d: Date|string, format?: string)

    - Beschreibung: Formatiert ein Datum nach einem bestimmten Format.
    - Parameter:
    - d (Date|string): Das zu formatierende Datum.
    - format (optional, string): Das Format des zurückgegebenen Datums. Wenn nicht angegeben, wird das Standardformat verwendet.
    - Rückgabewert: Das formatierte Datum als string.
    - Beispiel:
    const formattedDate = $.xdate.getDateFormat(new Date(), "dd.mm.yyyy");
  • getCreationDateFormat(format?: string)

    - Beschreibung: Ruft das Erstellungsdatum des Dokuments im angegebenen Format ab.
    - Parameter:
    - format (optional, string): Das Format des zurückgegebenen Datums. Wenn nicht angegeben, wird das Standardformat verwendet.
    - Rückgabewert: Das formatierte Erstellungsdatum als string.
    - Beispiel:
    const creationDate = $.xdate.getCreationDateFormat("dd.mm.yyyy");
  • getDate(d1: Date|string, format?: string)
    Beschreibung: Wandelt ein übergebenes Datumstring in ein Datumsobjekt um
    - Rückgabewert: Das aktuelle Datum als Date Objekt.
    - Parameter:
    - date: Datum im Textformat
    - format: Das format in dem das Datum übergeben wurde. Default ist d.m.yy
    - Beispiel:

    const parsedDate1 = $.xdate.getDate("31.03.2024")
    const parsedDate2 = $.xdate.getDate("03-31-2024", "m-d-yy")

  • getToday()

    - Beschreibung: Ruft das heutige Datum ab. Es wird das Datum des Servers verwendet.
    - Rückgabewert: Das heutige Datum als string im Standardformat.
    - Beispiel:
    const today = $.xdate.getToday();
  • addDateValidationRule(ruleName: string, ruleFunction: function)

    - Beschreibung: Fügt eine benutzerdefinierte Validierungsregel für Datumsangaben hinzu.
    - Parameter:
    - ruleName (string): Der Name der Regel.
    - ruleFunction (function): Die Funktion, die die Validierung durchführt.
    - Beispiel:
    $.xdate.addDateValidationRule("customRule", function(date) {
        // Benutzerdefinierte Validierungslogik hier
        return true; // true, wenn das Datum gültig ist, andernfalls false
    });
    // Benutzerdefinierte Regel, die prüft, ob das Datum in einem bestimmten Bereich liegt
    $.xdate.addDateValidationRule({
        ruleName: "dateRange",
        ruleFunction: function(date) {
            return date >= new Date(2023, 0, 1) && date <= new Date(2023, 11, 31);
        },
        errorMessage: "Das Datum muss zwischen dem 1. Januar 2023 und dem 31. Dezember 2023 liegen."
    });
    
    // Benutzerdefinierte Regel, die prüft, ob das Datum ein Wochenendtag ist
    $.xdate.addDateValidationRule({
        ruleName: "weekendOnly",
        ruleFunction: function(date) {
            return date.getDay() === 0 || date.getDay() === 6; // 0 = Sonntag, 6 = Samstag
        },
        errorMessage: "Das Datum muss ein Wochenendtag sein."
    });
  • dateRule(rule: string, compareTo?: Date | string | jQuery, msg?: string)

    - Beschreibung: Fügt eine Validierungsregel für Datumsangaben hinzu, basierend auf einem Vergleichsoperator und einem Vergleichsdatum.
    - Parameter:
    -- rule (string): Der Vergleichsoperator für die Validierung. Mögliche Werte sind "<", ">", "<=", ">=", "BEFORE" und "AFTER".
    -- compareTo (Date | string | jQuery, optional): Das Vergleichsdatum. Kann ein festes Datum, ein Datumsstring im Format "dd.mm.yyyy" oder ein jQuery-Objekt sein, das auf ein Eingabeelement zeigt.
    -- msg (string, optional): Die benutzerdefinierte Fehlermeldung, die zurückgegeben wird, wenn das Datum ungültig ist.
    - Beispiel:
    // Zukunft (Erstellungsdatum heute oder XFC_METADATA.currentProcess.creationDate)
    $('[name=tfFuture]').dateRule();
    
    // Zukunft (nach dem heutigen Datum)
    $('[name=tfFuture1]').dateRule('AFTER', $.xdate.getToday());
    
    // Vergangenheit und Heute (Erstellungsdatum heute oder XFC_METADATA.currentProcess.creationDate)
    $('[name=tfPast]').dateRule('<=');
    
    // Nach einem bestimmten Datum
    $('[name=tfAfter1]').dateRule('AFTER', '11.03.2022');
    
    // Vor einem bestimmten Datum
    $('[name=tfBefore1]').dateRule('BEFORE', '11.03.2022');
    $('[name=tfBefore2]').dateRule('<', '10.03.2022');
    
    // Eingabe
    $('[name=tf1]').dateRule('<=');
    $('[name=tf2]').dateRule('BEFORE', $('[data-name="tf1"]'));
    
    // Zwischen zwei Datumsfeldern
    $('[name=tf3]').dateRule('AFTER', 'tf1');
    $('[name=tf3]').dateRule('BEFORE', '25.03.2022');
    
    // Mindestalter überprüfen
    var m18 = $.xdate.getCreationDate();
    m18.setFullYear(m18.getFullYear() - 18);
    $('[data-name="tf4"]').dateRule('BEFORE', m18, "Sie müssen mindestens 18 Jahre alt sein, also vor dem '%' geboren sein!");
  • getBusinessDaysBetween


    Die Funktion getBusinessDaysBetween berechnet die Anzahl der Werktage zwischen zwei Daten unter Berücksichtigung von Feiertagen, Wochenenden und halben Feiertagen.

    getBusinessDaysBetween(d1: Date | string, d2: Date | string, state: string, considerHalfHolidays: boolean = false, additionalHolidays: Date[] = [])
    - Beschreibung: Berechnet die Anzahl der Werktage zwischen den angegebenen Daten.
    - Parameter:
    - d1 (Date | string): Das Startdatum als Date-Objekt oder als String im Format "dd.mm.yyyy".
    - d2 (Date | string): Das Enddatum als Date-Objekt oder als String im Format "dd.mm.yyyy".
    - state(string): Das Bundesland, für das die Feiertage berücksichtigt werden sollen. Unterstützte Werte:
    • 'bw': Baden-Württemberg
    • 'by': Bayern
    • 'he': Hessen
    • 'nw': Nordrhein-Westfalen
    • 'rp': Rheinland-Pfalz
    • 'sl': Saarland
    • 'bb': Brandenburg
    • 'mv': Mecklenburg-Vorpommern
    • 'sn': Sachsen
    • 'st': Sachsen-Anhalt
    • 'th': Thüringen
  • considerHalfHolidays (boolean, optional): Gibt an, ob halbe Feiertage berücksichtigt werden sollen. Standardmäßig auf false gesetzt.- additionalHolidays(Date[], optional): Eine optionale Liste zusätzlicher Feiertage als Date-Objekte, die berücksichtigt werden sollen. Standardmäßig eine leere Liste.- Rückgabewert: Die Anzahl der Werktage zwischen den angegebenen Daten.- Beispiel:
    const startDate = new Date('2024-06-01');
    const endDate = new Date('2024-06-15');
    const state = 'bw'; // Baden-Württemberg
    const workDays = $.xdate.getBusinessDaysBetween(startDate, endDate, state);
    console.log(workDays); // Ausgabe: 10

    Erweiterte Beispiele:

    // Mit halben Feiertagen und ohne zusätzlichen Feiertagen
    const startDate1 = new Date('2024-05-13');
    const endDate1 = new Date('2024-05-17');
    const state1 = 'by'; // Bayern
    const additionalHolidays1 = []; // Zusätzlicher Feiertag: 01.06.2024
    const workDays1 = $.xdate.getBusinessDaysBetween(startDate1, endDate1, state1, true, additionalHolidays1);
    console.log(workDays1); // Ausgabe: (5 Werktage zwischen 13.05. und 17.05.2024, keine zusätzlichen Feiertage festgelegt)
    
    // Mit halben Feiertagen und zusätzlichen Feiertagen
    const startDate2 = new Date('2024-05-13');
    const endDate2 = new Date('2024-05-17');
    const state2 = 'by'; // Bayern
    const additionalHolidays2 = [new Date('2024-5-15')]; // Zusätzlicher Feiertag: 01.06.2024
    const workDays2 = $.xdate.getBusinessDaysBetween(startDate2, endDate2, state2, true, additionalHolidays2);
    console.log(workDays2); // Ausgabe: (4 Werktage zwischen 13.05. und 17.05.2024, wobei 15.05. ein zusätzlicher Feiertag sein soll)
    
    // Mit einem anderen Bundesland und ohne Berücksichtigung von halben Feiertagen
    const startDate3 = new Date('2024-12-23');
    const endDate3 = new Date('2024-12-31');
    const state3 = 'nw'; // Nordrhein-Westfalen
    const workDays3 = $.xdate.getBusinessDaysBetween(startDate3, endDate3, state3, false);
    console.log(workDays3); // Ausgabe: (5 Werktage zwischen 23.12. und 31.12.2024 in Nordrhein-Westfalen)
    
    // Mit einem anderen Bundesland und ohne Berücksichtigung von halben Feiertagen
    const startDate4 = new Date('2024-12-23');
    const endDate4 = new Date('2024-12-31');
    const state4 = 'nw'; // Nordrhein-Westfalen
    const workDays4 = $.xdate.getBusinessDaysBetween(startDate3, endDate3, state3, true);
    console.log(workDays4); // Ausgabe: (4 Werktage zwischen 23.12. und 31.12.2024 in Nordrhein-Westfalen wenn da der 24.12. und der 31.12. als halber Feiertag berücksichtigt wird.)

War dieser Artikel hilfreich?

Das ist großartig!

Vielen Dank für das Feedback

Leider konnten wir nicht helfen

Vielen Dank für das Feedback

Wie können wir diesen Artikel verbessern?

Wählen Sie wenigstens einen der Gründe aus
CAPTCHA-Verifikation ist erforderlich.

Feedback gesendet

Wir wissen Ihre Bemühungen zu schätzen und werden versuchen, den Artikel zu korrigieren