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
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--
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(_dot_)retter(_at_)devon(_dot_)gov(_dot_)uk
w: www.devonline.gov.uk
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--