Skip to main content
Skip table of contents

WorkingTimeCalculator (Veraltet)

Die Arbeitszeit-Berechnungsfunktionen der Java-Klasse de.softproject.xsl.WorkingTimeCalculator zur Verwendung innerhalb von XSL-Mappings sind veraltet und werden in künftigen Versionen der X4 BPMS abgekündigt.

Ab Version 6.0.0 der X4 BPMS steht hierfür der Adapter Working Time Calculator zur Verfügung.


Die Java-Klasse  de.softproject.xsl.WorkingTimeCalculator befindet sich innerhalb der X4 Server-Bibliothek x4-client.jar (<X4>\Server\<wildfly>\modules\de\softproject\x4\client\main).

Ein XSL-Mapping, das diese Hilfsklasse verwendet, kann nicht in der Transformations-Vorschau des Mapping Editors ausgeführt werden.

Methoden zum Definieren der Arbeitszeit

Bevor die unten genannten Methoden für die Arbeitszeitberechnung verwendet werden können, ist es erforderlich, für das Objekt  WorkingTimeCalculator die gewünschten Arbeitszeiten (Beginn und Ende des Arbeitstages, Anzahl der Wochenarbeitstage, Urlaubstage etc.) über folgende Methoden zu definieren.

setHolidays(
java.lang.String holidays)

Setzt für ein WorkingTimeCalculator-Objekt einen oder mehrere Feiertage als Zeichenkette gemäß java.lang.String nach dem Muster yyyy-mm-dd, yyyy-mm-dd, ... und gibt ein Objekt vom Typ WorkingTimeCalculator zurück

Beispiel:  setHolidays('2013-12-24, 2013-12-25, 2013-12-26'), setHolidays('2016-4-15, 2016-4-16, 2016-4-18')

setSpecialDays(
java.lang.String specialDays)

Setzt für ein WorkingTimeCalculator-Objekt einen Tageszeitraum als Zeichenkette gemäß java.lang.String nach dem Muster yyyy-mm-dd hh:MM-hh:MM, yyyy-mm-dd hh:MM-hh:MM, ... und gibt ein Objekt vom Typ WorkingTimeCalculator zurück

Dieser Tageszeitraum wird in jedem Fall als Arbeitszeit berechnet, besitzt also Vorrang gegenüber Feiertagen und Arbeitszeiten.

Beispiel:  setSpecialDays('2010-12-06 11:30-12:0,2010-01-06 10:30-15:30')

setWorkingDayBegin(
int hr,
int min)

Setzt für ein WorkingTimeCalculator-Objekt den Beginn des Arbeitstags mit Stunden und Minuten jeweils als Ganzzahl und gibt ein Objekt vom Typ WorkingTimeCalculator zurück

Beispiel:  setWorkingDayBegin(9,0)

setWorkingDayBegin(
java.lang.String hr,
java.lang.String min)

Setzt für ein WorkingTimeCalculator-Objekt den Beginn des Arbeitstags mit Stunden und Minuten jeweils als Zeichenkette vom Typ java.lang.String und gibt ein Objekt vom Typ WorkingTimeCalculator zurück

Beispiel:  setWorkingDayBegin('09','00')

setWorkingDayEnd(
int hr,
int min)

Setzt für ein WorkingTimeCalculator-Objekt das Ende des Arbeitstags mit Stunden und Minuten jeweils als Ganzzahl und gibt ein Objekt vom Typ WorkingTimeCalculator zurück

Beispiel:  setWorkingDayEnd(17,0)

setWorkingDayEnd(
java.lang.String hr,
java.lang.String min)

Setzt für ein WorkingTimeCalculator-Objekt das Ende des Arbeitstags mit Stunden und Minuten jeweils als Zeichenkette vom Typ java.lang.String und gibt ein Objekt vom Typ WorkingTimeCalculator zurück

Beispiel:  setWorkingDayEnd('17','00')

setWorkingDays(
java.lang.String days)

Setzt für ein WorkingTimeCalculator-Objekt eine Liste der Arbeitstage pro Woche als Zeichenkette vom Typ java.lang.String nach dem Muster <Tagnummer>,<Tagnummer>,... und gibt ein Objekt vom Typ WorkingTimeCalculator zurück

Wochentage werden gemäß java.util.Calendar als nummerische Liste angegeben, beginnend bei 1 mit dem Sonntag.

Beispiel: setWorkingDays('2,3,4,5,6')


Arbeitszeit-Berechnungsfunktionen

addWorkingTimeMinutes(
WorkingTimeCalculator wtc,
java.util.Date from,
int minutes

Fügt einem java.util.Date-Objekt eine beliebige ganzzahlige Anzahl an Minuten innerhalb der definierten Arbeitszeiten hinzu und gibt ein Objekt vom Typ static java.util.Date zurück

Voraussetzung: ein Objekt WorkingTimeCalculator wurde bereits korrekt initialisiert und als erstes Argument innerhalb einer XSL-Variable übergeben, siehe Methoden zum Definieren der Arbeitszeit

addWorkingTimeMinutesString(
WorkingTimeCalculator wtc,
java.util.Date
 from,
int minutes)

Fügt einem java.util.Date-Objekt eine beliebige ganzzahlige Anzahl an Minuten innerhalb der definierten Arbeitszeiten hinzu und gibt eine Zeichenkette vom Typ java.lang.String zurück

Voraussetzung: ein Objekt WorkingTimeCalculator wurde bereits korrekt initialisiert und als erstes Argument innerhalb einer XSL-Variable übergeben, siehe Methoden zum Definieren der Arbeitszeit


Nur mit Xalan 2.7.1 kompatibel, nicht mit Saxon 9!

addWorkingTimeMinutesString(
WorkingTimeCalculator wtc,
java.lang.String
 from,
int minutes)

Fügt einer Zeichenkette gemäß java.lang.String eine beliebige ganzzahlige Anzahl an Minuten innerhalb der definierten Arbeitszeiten hinzu und gibt eine Zeichenkette vom Typ java.lang.String zurück

Voraussetzung: ein Objekt WorkingTimeCalculator wurde bereits korrekt initialisiert und als erstes Argument innerhalb einer XSL-Variable übergeben, siehe Methoden zum Definieren der Arbeitszeit


Nur mit Xalan 2.7.1 kompatibel, nicht mit Saxon 9!

Beispiel: addWorkingTimeMinutesString('Thu Jul 11 14:29:24 CEST 2013', 'Mon Jul 18 16:04:55 CEST 2013',200)

dateDiff(
java.util.Date from,
java.util.Date to)

Vergleicht zwei java.util.Date-Objekte miteinander und gibt die Differenz in Millisekunden als Zahl vom Typ static long zurück


Nur mit Xalan 2.7.1 kompatibel, nicht mit Saxon 9!

dateDiffWorkingMinutes(
WorkingTimeCalculator wtc,
java.util.Date
 from,
java.util.Date to)

Vergleicht zwei java.util.Date-Objekte miteinander und gibt die Differenz innerhalb der definierten Arbeitszeiten in Millisekunden als Zahl vom Typ long zurück

Voraussetzung: ein Objekt WorkingTimeCalculator wurde bereits korrekt initialisiert und als erstes Argument innerhalb einer XSL-Variable übergeben, siehe Methoden zum Definieren der Arbeitszeit


Nur mit Xalan 2.7.1 kompatibel, nicht mit Saxon 9!

getOstern(double year)

Ermittelt das Osterdatum für ein Jahr, das als vierstellige Zahl vom Typ double übergeben wird, und gibt eine Zeichenkette vom Typ java.lang.String zurück

Beispiel: getOstern(2014)

getWorkingTimeMinutes(
WorkingTimeCalculator wtc,
java.util.Date
 from,
java.util.Date to)

Ermittelt die Anzahl der Minuten innerhalb der definierten Arbeitszeiten, die zwischen einem Start- und einem Enddatum jeweils vom Typ  java.util.Date liegen, und gibt eine Zahl vom Typ double zurück

Voraussetzung: ein Objekt WorkingTimeCalculator wurde bereits korrekt initialisiert und als erstes Argument innerhalb einer XSL-Variable übergeben, siehe Methoden zum Definieren der Arbeitszeit

getWorkingTimeMinutes(
WorkingTimeCalculator wtc,
int
 fromYear,
int fromMonth,
int fromDay,
int fromHr,
int fromMin)

Ermittelt die Anzahl der Minuten innerhalb der definierten Arbeitszeiten, die zwischen einem Startdatum (definiert als Ganzzahlen für Jahr, Monat, Tag, Stunde und Minute) und dem aktuellen Zeitpunkt liegen, und gibt eine Zahl vom Typ double zurück

Voraussetzung: ein Objekt WorkingTimeCalculator wurde bereits korrekt initialisiert und als erstes Argument innerhalb einer XSL-Variable übergeben, siehe Methoden zum Definieren der Arbeitszeit

getWorkingTimeMinutes(
WorkingTimeCalculator wtc,
int
fromYear,
int fromMonth,
int fromDay,
int fromHr,
int fromMin,
java.util.Date to)

Ermittelt die Anzahl der Minuten innerhalb der definierten Arbeitszeiten, die zwischen einem Startdatum (definiert als Ganzzahlen für Jahr, Monat, Tag, Stunde und Minute) und einem Enddatum vom Typ java.util.Date liegen, und gibt eine Zahl vom Typ double zurück

Voraussetzung: ein Objekt WorkingTimeCalculator wurde bereits korrekt initialisiert und als erstes Argument innerhalb einer XSL-Variable übergeben, siehe Methoden zum Definieren der Arbeitszeit

getWorkingTimeMinutes(
WorkingTimeCalculator wtc,
int
fromYear,
int fromMonth,
int fromDay,
int fromHr,
int fromMin,
int toYear,
int toMonth,
int toDay,
int toHr,
int toMin)

Ermittelt die Anzahl der Minuten innerhalb der definierten Arbeitszeiten, die zwischen einem Start- und Enddatum (jeweils definiert als Ganzzahlen für Jahr, Monat, Tag, Stunde und Minute) liegen, und gibt eine Zahl vom Typ double zurück

Voraussetzung: ein Objekt WorkingTimeCalculator wurde bereits korrekt initialisiert und als erstes Argument innerhalb einer XSL-Variable übergeben, siehe Methoden zum Definieren der Arbeitszeit

Beispiel

HTML/XML
<xsl:stylesheet xmlns:x4time="de.softproject.xsl.TimeHelperDate" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  xmlns:x4wtc="de.softproject.xsl.WorkingTimeCalculator" 
  exclude-result-prefixes="x4time x4wtc" version="1.0">
  <xsl:output indent="yes" method="xml" media-type="text/xml"></xsl:output>
  <xsl:template match="/">
    <Output>
      <!-- Create new WorkingTimeCalculator object and store it in variable WTC -->
      <xsl:variable select="x4wtc:new()" name="WTC1"></xsl:variable>

      <!-- Get a java.util.date object with current date/time -->
      <xsl:variable select="x4time:now()" name="date"></xsl:variable>
      <now><xsl:value-of select="$date"></xsl:value-of></now>

      <!-- Set 2013 holidays to new year's eve and christmas -->
      <xsl:variable select="x4wtc:setHolidays($WTC1,'2013-1-1, 2013-12-25')" name="WTC2"></xsl:variable>

      <!-- Set extra working time to December 24th from  (Santa's X-mas delivery shift) -->
      <xsl:variable select="x4wtc:setSpecialDays($WTC2,'2013-12-24 23:0-23:59')" name="WTC3"></xsl:variable>

      <!-- Set working day begin time to 9:00 AM for the WTC object variable -->
      <xsl:variable select="x4wtc:setWorkingDayBegin($WTC3,9,0)" name="WTC4"></xsl:variable>

      <!-- Set working day end time to 5:00 PM (17:00) for the WTC object variable -->
      <xsl:variable select="x4wtc:setWorkingDayEnd($WTC4, 17, 0)" name="WTC5"></xsl:variable>

      <!-- Set working days to Monday, Tuesday, Wednesday, Thursday, Friday for the WTC object variable -->
      <xsl:variable select="x4wtc:setWorkingDays($WTC5,'2,3,4,5,6')" name="WTC"></xsl:variable>

      <!-- Add 500 working time minutes to a date -->
      <xsl:variable select="x4wtc:addWorkingTimeMinutes($WTC, $date,500)" name="addWorkingTimeMinutes"></xsl:variable>
      <addWorkingTimeMinutes><xsl:value-of select="$addWorkingTimeMinutes"></xsl:value-of></addWorkingTimeMinutes>
 
      <!-- Get Easter date for year 2014 -->
      <xsl:variable select="x4wtc:getOstern(2014)" name="getOstern"></xsl:variable>
      <getOstern><xsl:value-of select="$getOstern"></xsl:value-of></getOstern>    

      <!-- Calculate working minutes between two java.util.Date objects -->
      <xsl:variable select="x4wtc:getWorkingTimeMinutes($WTC,$date,$addWorkingTimeMinutes)" name="getWorkingTimeMinutes"></xsl:variable>
      <getWorkingTimeMinutes type="date"><xsl:value-of select="$getWorkingTimeMinutes"></xsl:value-of></getWorkingTimeMinutes>    
    </Output>
  </xsl:template>
</xsl:stylesheet>
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.