Re: [xsl] Calculate Monthly Recuring dates

Subject: Re: [xsl] Calculate Monthly Recuring dates
From: Adam Retter <adam.retter@xxxxxxxxxxxx>
Date: Tue, 30 Jan 2007 16:10:22 +0000
Thanks David, that looks very useful :-)

I am using EXSLT functions, for functions such as date:day-in-week() and
date:week-in-month() as these are a simple way to calculate such values.

> > (BTW - my XSLT Processor is Saxon 8 and I am already making use of EXSLT
> > for other date related operations).
> 
> why use EXSLT which are date extensions for XSLT1, when saxon8 has the
> XPath2 date functions already?
> 
> This for example returns the first saturday of the current month.
> 
> $ saxon8 -it main saturday.xsl 
> <?xml version="1.0" encoding="UTF-8"?>
> today:  2007-01-30Z
> 1st of month   2007-01-01Z
> 1st day month   Monday
> 1st saturday of month : 2007-01-06Z
> 
> 
> <xsl:stylesheet version="2.0" 
> 		xmlns:xs="http://www.w3.org/2001/XMLSchema";
> 		xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
>   
> 
> <xsl:template name="main">
> today:  <xsl:value-of  select="current-date()"/>
> <xsl:variable name="today" select="current-date()"/>
> <xsl:variable name="fom" 
>   select="current-date()- xs:dayTimeDuration(concat('P',day-from-date(current-date())-1,'DT0S'))"/>
> 1st of month   <xsl:value-of  select="$fom"/>
> 1st day month   <xsl:value-of  select="format-date($fom,'[F]')"/>
> 1st saturday of month : <xsl:value-of select="(for $d in  0 to 6
>   return
>    $fom + xs:dayTimeDuration(concat('P',$d,'DT0S')))[format-date(.,'[F]')='Saturday']
>   "/>
> </xsl:template>
> </xsl:stylesheet>
> 
> 
> David
> 
-- 
Adam Retter

Principal Developer
Devon Portal Project
Room 310
County Hall
Topsham Road
Exeter
EX2 4QD

t: 01392 38 3683
f: 01392 38 2966
e: adam.retter@xxxxxxxxxxxx
w: www.devonline.gov.uk

Current Thread