xsl-list
[Top] [All Lists]

RE: Converting dayTimeDuration to yearMonthDuration

2006-01-18 08:13:38

There was a function to do this at one stage - something like
subtract-dates-yielding-yearMonthDuration - but we took it out because we
had trouble defining exactly what it should do. (If you were born on 29 Feb
1980, how old are you on 28 Feb 2006?)

One possible answer is

((current-date() - xsd:date(birthdate)) div xdt:dayTimeDuration('P1D')) 
   idiv 365.242199 
   * xdt:yearMonthDuration('P1Y')

But that may give small errors at the boundaries (i.e. on someone's
birthday).

The alternative, I think, is to extract the year/month/day components of the
two dates and do the calculation yourself.

Michael Kay
http://www.saxonica.com/  

-----Original Message-----
From: Gary Stewart [mailto:the(_dot_)stewarg(_at_)gmail(_dot_)com] 
Sent: 18 January 2006 14:38
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Converting dayTimeDuration to yearMonthDuration

Hello people.

I'm sorry to bother you with questions like this. I just couldn't seem
to find an answer anywhere else. I'm currently using XSLT 2.0 and
taking advantage of XPath 2.0. I'm trying to get the age of someone
based of:

(current-date() - xsd:date(birthDate))

which returns a dayTimeDuration. The issue is I'd really like to use
years-from-duration but that expects a yearMonthDuration. I tried
casting from dayTimeDuration to yearMonthDuration but to no avail.
Does anyone know a way to get a year result from a dayTimeDuration?

Thanks,

Gary

--~------------------------------------------------------------------
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>
--~--





--~------------------------------------------------------------------
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>
--~--



<Prev in Thread] Current Thread [Next in Thread>