Bonjour,
Denys : « Si, en A1 j'inscris 370, comment avoir en B1 comme résultat 1 an et 5 jours ? »
Dans le cas présent on part du principe que l’année a 365 jours donc que l’on se base sur un calendrier civil qui comporte 28/29, 30 ou 31 jours par mois (par opposition au calendrier financier qui comporte fixement 30 jour par mois et 360 jours par ans).
Denys : « ou encore en A1 j'inscris 400 et en B1 1 an, 1 mois et 5 jours.... »
Là encore, selon le décomptage proposé, nous nous situons dans une logique calendrier civil», basée sur un nombre de jours de 365 par an (et non 360).
Maintenant si nous nous situons sur un calcul de l’année civil, il est INDIPENSABLE de fixer une DATE DE BASE pour le calcul. Il n’est en effet pas possible de poser un nombre de jours dans un espace indéfini et demander combien cela fait de mois et de jours.
Démonstration :
Prenons l’exemple de 30j :
Positionnons-nous le 1.1.2013
la réponse sera : 0 ans 0 mois 30 jours
Toujours pour 30 jours :
Positionnons-nous maintenant le 1.2.2013 (le mois de février n’a en 2013 que 28 j.)
La réponse sera : 0 ans 1 mois 2 jours
C’est pour contourner ce genre de problèmes et simplifier les choses que le calendrier commercial avec des mois de 30j fixe et des années de 360 jours, a été mis sur pied pour toute la mathématique lié à la gestion financière.
Denys : « tout ça sans égard aux années bissextiles.... »
Maintenant dès l’instant où l’on approche le problème avec un angle « année civile » ce qui semble le cas, il FAUT tenir compte des années bissextiles. Ou on est précis, ou on est carré, l’entre deux n’a pas de sens.
La réponse à la question de Denys avec une approche « année financière » est exposée dans mon précédent post.
Pour répondre à Denys avec une approche « année civile » il y a lieu tout d’abord et comme vu précédemment de fixer la DATE DE BASE du décomptage.
Un deuxième petit problème se situe au niveau du jour 1. Le jour courant (soit la DATE DE BASE) est-il considéré comme le jour 1 ou le jour 0 ?
Parle-t-on de jour accompli (24 h.) ou la date de base en soit est-elle déjà décompter comme 1 jour ?
En effet, si je fais par différence sur XL entre le 01.01.2013 et le 01.01.2013 la réponse sera 0.
Il faut un écart de date (soit passer minuit) pour qu’un jour soit un jour (soit une différence entre le 01.01 et le 02.01).
Logique !
Et pourtant la question de Denys considère en soit le jour 0 comme jour 1 (puisque l’on parle d’un nombre de jours et non d’une différence de date).
Si je prends l’hypothèse que je demande à l’outil que souhaite Denys de calculer 1 j.
La réponse attendue est-elle : 0 a. 0m. 0j. ?
Ou bien : 0 a. 0m. 1j. ?
La deuxième option semble assez normale… c’est donc cette voie que j’ai choisie pour développer le petit outil que vous trouverez ci-joint.
http://cjoint.com/?CKBrPFbBskk
Il fonctionne comme à mon habitude sans une seule ligne de code et s’articule sur ce que j’appelle (à tort surement) le principe des tables dynamiques.
Bien cordialement,
C.