|
Subject: RE: [xsl] Q - Parsing & Manipulating Strings from XSL From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Mon, 30 May 2005 10:13:07 +0100 |
> I have another question: Another number is returned as type string.
> This represents time in minutes. For e.g for '315', I want to do is
> format it as 5 hrs 15 mins.
>
> The formula is:
>
> mins = ( (315 mod 60) div 100 ) * 60
> hrs = 315 - (315 mod 60)
>
> How can I do this in Xquery ? This data is returned in a
> <JrnyTm></JrnyTm> tag.
>
(Your previous question asked for an XSLT solution, you're now asking for
XQuery. In principle XQuery is off-topic for this list, but in practice, you
can use the same approach in both. But the decimal-format/format-number
solution I gave you earlier is XSLT-only)
You've got a choice between using numeric arithmetic or duration arithmetic.
It's probably cleanest to use duration arithmetic though it's a bit verbose.
declare variable $one-minute := xdt:dayTimeDuration('PT1M')
then
let $time := xs:integer(JrnyTm) * $one-minute,
$hours := hours-from-duration($time),
$minutes := minutes-from-duration($time)
return
concat($hours, ' hrs ', $minutes, ' minutes ')
Michael Kay
http://www.saxonica.com/
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Q - Parsing & Manipulatin, Ahsan Ali | Thread | Re: [xsl] Q - Parsing & Manipulatin, Ahsan Ali |
| [xsl] RE: DOM or SAX input faster/m, Michael Kay | Date | RE: [xsl] Saxon -> UnknownHostExcep, Michael Kay |
| Month |