Ajouter une Durée de DateTime dans XSLT

Dans une transformation XSLT, je veux convertir un document XML vers un autre. L'ancien document a certaines dates et les heures qui ne sont pas vraiment facile à utiliser. Par exemple:

<foo date="20110310" time="002000" duration="001500"/>

Maintenant, j'ai extrait toutes les informations et a été en mesure de les convertir vers le format ISO 8601 dates:

<xsl:variable name="begin" select='concat($begin_date_year, "-", $begin_date_month, "-", $begin_date_day, "T", $begin_time_hour, ":", $begin_time_minutes, ":", $begin_time_seconds)'/>
--> $begin = 2011-03-10T00:20:00

Et pour la durée:

<xsl:variable name="duration" select='concat("PT", $dur_hour, ":", $dur_minutes, ":", $dur_seconds)'/>
--> $duration = PT00:15:00

Comment puis-je ajouter la durée de l'DateTime afin de savoir la fin (dans un format DateTime)?

J'ai déjà pensé à l'ajout de composants individuels, mais cela impliquerait beaucoup de bidouiller avec des modules, par exemple si j'ai ajouté 15 minutes à 23:50, et d'avoir ensuite à régler le jour en conséquence, etc.

OriginalL'auteur slhck | 2011-03-11