|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Q - Parsing & Manipulating Strings from XSL
> 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/
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








