Subject: [xsl] Doing Math on Durations and Creating dayTimeDuration Instances From: "Eliot Kimber ekimber@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 6 Oct 2016 09:40:07 -0000 |
I'm using XSLT to extract timing information from logs in order to determine the duration of actions. Each log item has a time stamp in the usual format (2016-10-05T15:52:17.525:+0200). In order to get the difference between two times I'm manually constructing dayTimeDurations by constructing a dateTime object and then using the various accessor functions to get the different components and then manually making a dayTimeDuration string as input to xs:dayTimeDuration(): <xsl:function name="local:makeDayTimeDuration" as="xs:dayTimeDuration"> <xsl:param name="dateString" as="xs:string"/> <xsl:variable name="date" as="xs:dateTime" select="xs:dateTime($dateString)"/> <xsl:variable name="days" as="xs:integer?" select="day-from-dateTime($date)"/> <xsl:variable name="hours" as="xs:integer?" select="hours-from-dateTime($date)"/> <xsl:variable name="minutes" as="xs:integer?" select="minutes-from-dateTime($date)"/> <xsl:variable name="seconds" as="xs:decimal?" select="seconds-from-dateTime($date)"/> <xsl:variable name="dayTimeDurationStr" as="xs:string" select="concat('P', $days, 'DT', $hours, 'H', $minutes, 'M', $seconds, 'S')" /> <xsl:sequence select="xs:dayTimeDuration($dayTimeDurationStr)"/> </xsl:function> This works but I expected to find a function to directly get a dayTimeDuration from a dateTime, but I didn't find one in the XPath 2.0 operators and functions spec (April 2015 version). Did I miss something or do I really have to manually construct the dayTimeDuration string? Thanks, Eliot -- Eliot Kimber http://contrext.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] XSL-List Guidelines, B Tommie Usdin btusd | Thread | Re: [xsl] Doing Math on Durations a, Jirka Kosek jirka@xx |
Re: [xsl] Determine if an element w, Michael Kay mike@xxx | Date | Re: [xsl] Doing Math on Durations a, Jirka Kosek jirka@xx |
Month |