Home
Über mich
Blog
Veröffentlichungen
IT-Trainings
Impressum


Toll, ein Kalender

Rekursive Aufrufe können Tücken haben.

Das folgende Template ruft sich rekursiv selber auf und schreibt jeden Tag des Jahres 2017 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; 2018">
      <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: Samstag, 23. Dezember 2017</TAG>
<TAG>KW 51: Sonntag, 24. Dezember 2017</TAG>
<TAG>KW 52: Montag, 25. Dezember 2017</TAG>
<TAG>KW 52: Dienstag, 26. Dezember 2017</TAG>
<TAG>KW 52: Mittwoch, 27. Dezember 2017</TAG>
<TAG>KW 52: Donnerstag, 28. Dezember 2017</TAG>
<TAG>KW 52: Freitag, 29. Dezember 2017</TAG>
<TAG>KW 52: Samstag, 30. Dezember 2017</TAG>
<TAG>KW 52: Sonntag, 31. Dezember 2017</TAG>

qrpic/Zeitfunktionen1.jpg

wg / 14. Oktober 2017




Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf (info10@wilfried-grupe.de).



Vielen Dank für Ihr Interesse an meiner Arbeit.


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

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