Calc questions sur "datedif" et "mois.decaler"

Bonjour,
Avec LO 5.0.5.2, sous windows 7

Dans un fichier calc, j'ai besoin d'afficher la différence entre deux dates
sous la forme Nbre d'années Nbre de mois Nbre de jours pour récupérer ces
données par la suite.
Pour cela, j'utilise la fonction DATEDIF qui semble me renvoyer un résultat
correct.

Étant prudent, je vérifie :
- que je retrouve bien ma date 2 en appliquant la fonction MOIS.DECALER à ma
date 1 : cela fonctionne, super !
- que je retrouve bien ma date 1 en appliquant la fonction MOIS.DECALER à ma
date 2 : et là, problème...

Ça ne fonctionne que dans deux cas de figure :
- si le "jour" de ma date 1 est le même que celui de ma date 2...
- ou, quel que soit le jour, seulement pour les mois ayant 31 jours...

Un fichier en exemple :
Datedif_et_Mois.ods
<http://nabble.documentfoundation.org/file/n4181951/Datedif_et_Mois.ods>

Si une explication était possible ...

Merci d'avance.
Luc

Bonjour,

Luc Mamin wrote

Bonjour,
Avec LO 5.0.5.2, sous windows 7

Dans un fichier calc, j'ai besoin d'afficher la différence entre deux
dates sous la forme Nbre d'années Nbre de mois Nbre de jours pour
récupérer ces données par la suite.
Pour cela, j'utilise la fonction DATEDIF qui semble me renvoyer un
résultat correct.

Étant prudent, je vérifie :
- que je retrouve bien ma date 2 en appliquant la fonction MOIS.DECALER à
ma date 1 : cela fonctionne, super !
- que je retrouve bien ma date 1 en appliquant la fonction MOIS.DECALER à
ma date 2 : et là, problème...

Ça ne fonctionne que dans deux cas de figure :
- si le "jour" de ma date 1 est le même que celui de ma date 2...
- ou, quel que soit le jour, seulement pour les mois ayant 31 jours...

Un fichier en exemple :
Datedif_et_Mois.ods
<http://nabble.documentfoundation.org/file/n4181951/Datedif_et_Mois.ods>

Si une explication était possible ...

Merci d'avance.
Luc

Je pense que la façon dont tu reconstruis la date de départ n'est pas
correcte.
L'ordre des opérations a une importance puisque les mois n'ont pas tous la
même longueur.
A titre d'exemple MOIS.DECALER(DATEVAL("2016-01-31");1) renvoie le
29/02/2016,
alors que MOIS.DECALER(DATEVAL("2016-02-29");-1) renverra le 29/01/2016.

Utilises =MOIS.DECALER(H5-F5;-12*D5-E5) à la place de
=MOIS.DECALER(H5;-12*D5-E5)-F5
et les résultats sont ceux attendus.

Gérard

Merci bôôôôôôcoup...

Je résume :
si MOIS.DECALER sert à construire une date future, on ajoute (éventuellement) les "jours" en fin de formule.
si MOIS.DECALER sert à construire une date antérieure, on retranche (éventuellement) les "jours" au début de la formule.

@+
Luc