Developpez.com

XML

Choisissez la catégorie, puis la rubrique :

logo
Sommaire > Le 'XML Stylesheet Language : Transformations' (XSLT) > Feuilles XSLT > Gestion de date
        Comparer deux dates format jj/mm/aaaa



Auteur : Erwan Amoureux
Version : 06/02/2007
Comparer deux dates format jj/mm/aaaa
Problème récurrent que le classement des dates. Désormais il s'agira plutôt d'une solution récurrente...
Le XML

<?xml version="1.0" encoding="UTF-8"?>
<r>
	<date>01/01/2000</date>
	<date>01/02/2001</date>
</r>
Le XSLT

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="text"/>
	<xsl:template match="/">
		<r>
			<xsl:value-of select="r/date[1]"/>
			<xsl:variable name="res">
				<xsl:call-template name="CompDate">
					<xsl:with-param name="date1" select="r/date[1]"/>
					<xsl:with-param name="date2" select="r/date[2]"/>
				</xsl:call-template>
			</xsl:variable>
			<xsl:choose>
				<xsl:when test="number($res)=1"> est postérieure à </xsl:when>
				<xsl:when test="number($res)=-1"> est antérieur à </xsl:when>
				<xsl:otherwise> est la même date que </xsl:otherwise>
			</xsl:choose>
			<xsl:value-of select="r/date[2]"/>
		</r>
	</xsl:template>
	<xsl:template name="CompDate">
		<xsl:param name="date1"/>
		<xsl:param name="date2"/>
		<xsl:variable name="d1" select="number(concat(substring($date1, 7, 4),substring($date1, 4, 2),substring($date1, 1, 2)))"/>
		<xsl:variable name="d2" select="number(concat(substring($date2, 7, 4),substring($date2, 4, 2),substring($date2, 1, 2)))"/>
		<xsl:choose>
			<xsl:when test="$d1>$d2">1</xsl:when>
			<xsl:when test="$d1<$d2">-1</xsl:when>
			<xsl:otherwise>0</xsl:otherwise>
		</xsl:choose>
	</xsl:template>
</xsl:stylesheet>
Le Résultat

01/01/2000 est antérieure à 01/02/2001


Consultez les autres pages sources


Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Contacter le responsable de la rubrique XML