Subject: RE: [xsl] Comparing Integers From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Wed, 17 Oct 2007 18:03:03 +0100 |
Are you doing this in XSLT 1.0 or 2.0? In 2.0 you can compare these values directly by casting them to xs:dateTime and then subtracting to get the difference as an xs:dayTimeDuration. In 1.0 you may be able to take advantage of the library routines at www.exslt.org. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Aaron Johnson [mailto:artpunx@xxxxxxxxx] > Sent: 17 October 2007 17:55 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Comparing Integers > > Hello... > > I have set up some tests to compare Integers, but wish to > refine the comparison. I have some xml: > > <submissionDeadline>2027-10-04T09:00:00.0000000-00:00</submiss > ionDeadline> > <submissionDeadline>2007-10-03T09:00:00.0000000-00:00</submiss > ionDeadline> > <submissionDeadline>2007-10-01T08:00:00.0000000+01:00</submiss > ionDeadline> > <submissionDeadline>2007-09-10T12:00:00.0000000+01:00</submiss > ionDeadline> > > > This is selected and concatenated into an integer: > > <xsl:variable name="submissionDeadlineString" > select="concat(substring(submissionDeadline, 1,4)... etc etc > > I then concatenate the current time / date etc: > > <xsl:variable > name="currentTime">2007-10-04T09:00:00.0000000+01:00</xsl:variable> > <xsl:variable name="currentTimeString" > select="concat(substring($currentTime, 1,4)....etc etc > > ...then test against each other: > > <xsl:when test="$currentTimeString < = > $submissionDeadlineString"><xsl:call-template > name="ontime"/></xsl:when> > > I would like to be able to test for 4 different outcomes, > ontime, within24Hours, within10Days and past10Days. I have > set up variable and tests thus far: > > <xsl:variable > name="currentTime">2007-10-04T09:00:00.0000000+01:00</xsl:variable> > <xsl:variable name="currentTimeString" > select="concat(substring($currentTime, 1,4)....etc etc > <xsl:variable name="within24Hours" > select="number($submissionDeadlineString + 1000000)"/> > <xsl:variable name="within10Days" > select="number($submissionDeadlineString + 1000001)"/> > <xsl:variable name="past10Days" > select="number($submissionDeadlineString + 10000001)"/> > > <xsl:choose> > <xsl:when test="$currentTimeString < = > $submissionDeadlineString"><xsl:call-template > name="ontime"/></xsl:when> > <xsl:when test="$currentTimeString < = > $within24Hours"><xsl:call-template > name="twentyFourHourRule"/></xsl:when> > <xsl:when test="$currentTimeString < = > $within10Days"><xsl:call-template > name="tenDayRule"/></xsl:when> <xsl:when > test="$currentTimeString > = > $past10Days"><xsl:call-template > name="plusTenDay"/></xsl:when> </xsl:choose> > > ...so far, only the "ontime" and "plusTenDay" tests work. > > Am I headed in the right direction? Can anyone offer any > advice please? > > Thank you.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Comparing Integers, Aaron Johnson | Thread | Re: [xsl] Comparing Integers, Aaron Johnson |
[xsl] Comparing Integers, Aaron Johnson | Date | Re: [xsl] Comparing Integers, David Carlisle |
Month |