¿Hay alguna manera de encontrar la diferencia en días entre 2 fechas en xslt? Si es así, ¿puedes señalarme en la dirección correcta? Estoy recibiendo fechas en el formato de mm/dd/aaaa.Encontrar la diferencia entre 2 fechas en xslt
Respuesta
uso de XSLT 2.0 (XPath 2.0) para este:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:my="my:my">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:variable name="vDate1"
select="my:dateFromUsDate(/*/d1)"/>
<xsl:variable name="vDate2"
select="my:dateFromUsDate(/*/d2)"/>
<xsl:sequence select=
"($vDate1 - $vDate2) div xs:dayTimeDuration('P1D')"/>
</xsl:template>
<xsl:function name="my:dateFromUsDate" as="xs:date">
<xsl:param name="pUsDate" as="xs:string"/>
<xsl:sequence select=
"xs:date(concat(substring($pUsDate,7,4),
'-',
substring($pUsDate,1,2),
'-',
substring($pUsDate,4,2)
)
)
"/>
</xsl:function>
</xsl:stylesheet>
cuando se aplica esta transformación en el siguiente documento XML:
<t>
<d1>04/06/2011</d1>
<d2>01/11/2010</d2>
</t>
el, resultado correcto deseado (la diferencia es 450 días) se produce:
450
la única solución que me ayudó con las fechas en OSB – Tol182
Another Perfect Answser - https://stackoverflow.com/questions/38604414/finding-the-difference-between-two-datetimes-in-xslt –
Una alternativa más agradable (y más corta) para XSLT 1.0 es calcular las fechas Julianas equivalentes y restarlas.
Plantilla:
<xsl:template name="calculate-julian-day">
<xsl:param name="year"/>
<xsl:param name="month"/>
<xsl:param name="day"/>
<xsl:variable name="a" select="floor((14 - $month) div 12)"/>
<xsl:variable name="y" select="$year + 4800 - $a"/>
<xsl:variable name="m" select="$month + 12 * $a - 3"/>
<xsl:value-of select="$day + floor((153 * $m + 2) div 5) + $y * 365 + floor($y div 4) - floor($y div 100) + floor($y div 400) - 32045"/>
Uso:
<xsl:variable name="dateInv" select="'20120406'" />
<xsl:call-template name="calculate-julian-day">
<xsl:with-param name="year" select="substring($date,1,4)"/>
<xsl:with-param name="month" select="substring($date,5,2)"/>
<xsl:with-param name="day" select="substring($date,7,2)"/>
</xsl:call-template>
Repita para la segunda fecha y tendrá dos números enteros. Entonces, simplemente restarlos.
Esto podría hacerse fácilmente utilizando la siguiente expresión:
days-from-duration(xs:date('yyyy-MM-dd')-xs:date('yyyy-MM-dd'))
Por ejemplo:
days-from-duration(xs:date('2012-06-30')-xs:date('2012-06-18'))
daré resultado de
- 1. Diferencia entre 2 fechas en SQLite
- 2. Cómo obtener la diferencia horaria (en horas) entre 2 fechas
- 3. Cómo encontrar la diferencia entre las fechas en VBA
- 4. Diferencia entre fechas en JavaScript
- 5. ¿Cómo puedo encontrar la diferencia entre dos fechas usando Javascript
- 6. Diferencia entre 2 fechas en cuestión de segundos
- 7. ¿Diferencia entre 2 fechas y horas en horas?
- 8. calcular la diferencia entre dos fechas
- 9. ¿Manera concisa de encontrar la diferencia "clave" entre 2 diccionarios?
- 10. Android diferencia entre dos fechas en segundos
- 11. Diferencia entre * y nodo() en XSLT
- 12. C# - ¿Diferencia entre dos fechas?
- 13. Diferencia entre fechas en dos filas consecutivas
- 14. encuentra la diferencia entre dos fechas en segundos
- 15. Diferencia entre dos fechas en Python
- 16. Diferencia entre dos fechas en MySQL
- 17. Diferencia, en minutos, entre dos fechas
- 18. Seleccione la diferencia entre las fechas de fila en MySQL
- 19. Calcular el número de horas entre 2 fechas en PHP
- 20. C# LINQ Donde Fecha Entre 2 fechas
- 21. ¿Cómo encontrar las fechas entre dos fechas especificadas?
- 22. ¿Cómo obtener la diferencia entre dos fechas redondeadas a horas
- 23. La diferencia más pequeña entre 2 ángulos
- 24. Calcular la diferencia entre dos fechas en MySQL
- 25. ¿Cómo obtengo la diferencia entre dos fechas en JavaScript?
- 26. Calcula la diferencia entre dos fechas en PHP
- 27. ¿Cómo verifico la diferencia, en segundos, entre dos fechas?
- 28. ¿Cómo encuentro la diferencia horaria entre dos fechas en PHP?
- 29. ¿Cómo calculo la cantidad de años de diferencia entre 2 fechas?
- 30. ¿Cuál es la forma más simple de encontrar la diferencia entre 2 veces en python?
¿Le pegan con XSLT 1 o puede usted usar XSLT2? –
En XSLT 1.0 tiene EXSLT 'date: difference' implementado por Jeni Tennison en http://www.exslt.org/date/functions/difference/date.difference.template.xsl –
Recomendaría usar XSLT 2.0/XPath 2.0 para esto. –