XPath 3.0, XPath 2.0, XPath 1.0 / XPath-Funktionen / Zeit ist Geld / Toll, ein Kalender

Toll, ein Kalender

Toll, ein Kalender

➪ Um den Kalender für die Restlaufzeit bis zu einem Enddatum zu erstellen, können Sie mit rekursiven Aufrufen arbeiten.

Das folgende Template ruft sich rekursiv selber auf und schreibt jeden Tag des Jahres 2018 formatiert in einen Ausgabestrom. Bei dem rekursiven Aufruf wird der jeweils nächste Tag berechnet ("$pheute + xs:dayTimeDuration('P1D')") und als Parameter für den nächsten Aufruf übergeben. Die Rekursion endet, sobald die Jahreszahl des jeweiligen Tages sich erhöht ("year-from-dateTime($vmorgen)").


  <xsl:template name="writeCalendar">
    <xsl:param name="pheute" as="xs:dateTime"/>
    <TAG>
      <xsl:value-of 
         select="format-dateTime($pheute, 
            'KW [W]: [F], [D1o] [MNn] [Y0001]')"/>
    </TAG>    
    <xsl:variable 
         name="vmorgen" 
         as="xs:dateTime" 
         select="$pheute + xs:dayTimeDuration('P1D')"/>
    <xsl:if 
         test="year-from-dateTime($vmorgen) &lt; 2019">
      <xsl:call-template 
           name="writeCalendar">
        <xsl:with-param 
             name="pheute" 
             select="$vmorgen"/>
      </xsl:call-template>
    </xsl:if>    
  </xsl:template>

Aufgerufen wird das Template mit


<xsl:call-template name="writeCalendar">
  <xsl:with-param 
       name="pheute" 
       select="current-dateTime()"/>
</xsl:call-template>

Resultat:


...
   <TAG>KW 51: Sonntag, 23. Dezember 2018</TAG>
   <TAG>KW 52: Montag, 24. Dezember 2018</TAG>
   <TAG>KW 52: Dienstag, 25. Dezember 2018</TAG>
   <TAG>KW 52: Mittwoch, 26. Dezember 2018</TAG>
   <TAG>KW 52: Donnerstag, 27. Dezember 2018</TAG>
   <TAG>KW 52: Freitag, 28. Dezember 2018</TAG>
   <TAG>KW 52: Samstag, 29. Dezember 2018</TAG>
   <TAG>KW 52: Sonntag, 30. Dezember 2018</TAG>
   <TAG>KW 53: Montag, 31. Dezember 2018</TAG>

wg / 22. September 2018



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.






Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/Zeitfunktionen1.html