This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: format-number


Hi Daniel,

> This is probably quite a simple question, but I have a number
> (17042000) which I want to convert into a date. I've tried
> format-number(17042000, '##/##/####'), but that doesn't work, and
> returns 17042000//, so, how would I go about converting the above
> number into something that resembled a date?

format-number() is specifically for formatting decimal numbers or
integers in ways that make them easier for people to view. You can
create groupings using format-number(), but only groupings of the same
size, so there's no way you can use it for dates.

Instead, you need to turn your number into a string and then use
substring functions to create the date format:

  concat(substring($number, 1, 2), '/',
         substring($number, 3, 2), '/',
         substring($number, 5))

> And also, I'd like to perform a test on a number to determine if
> it's positive or negative. Sgn usually does the trick, but can't see
> any reference to it in xsl. What I'd like is to use:

There's no sgn() function in XPath. You can use:

  $number >= 0

to see if a number is positive (though there may be technicalities
surrounding +/-0 that I'm not aware of).

If you really want to use a function instead, and if you're using a
processor that allows you to create your own user-defined functions,
then you could roll your own sgn() function, but I think that it will
probably prove to be more effort than it's worth considering that the
above expression is fairly simple.

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]