Excel calcul de la différence entre deux dates (suite)
Fermé
patrick1870
Messages postés
64
Date d'inscription
dimanche 23 novembre 2014
Statut
Membre
Dernière intervention
6 juin 2024
-
27 janv. 2021 à 02:12
Raymond PENTIER Messages postés 58645 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 13 septembre 2024 - 28 janv. 2021 à 02:14
Raymond PENTIER Messages postés 58645 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 13 septembre 2024 - 28 janv. 2021 à 02:14
A voir également:
- Datedif 1900
- Calcul moyenne excel - Guide
- Liste déroulante excel - Guide
- Aller à la ligne excel - Guide
- Si et excel - Guide
- Itinéraire google map entre deux adresses - Guide
3 réponses
Raymond PENTIER
Messages postés
58645
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
13 septembre 2024
17 194
28 janv. 2021 à 02:14
28 janv. 2021 à 02:14
patrick1870
Messages postés
64
Date d'inscription
dimanche 23 novembre 2014
Statut
Membre
Dernière intervention
6 juin 2024
11
27 janv. 2021 à 03:52
27 janv. 2021 à 03:52
je m'aperçois que j'ai dû faire une mauvaise manipulation voici le texte intégral :
Bonjour à tous,
J'ai clôturé un peu tôt le sujet "excel calcul de la différence entre 2 dates" (https://forums.commentcamarche.net/forum/affich-37059123-excel-calcul-de-la-difference-entre-2-dates)
Je disais qu'après maints essais je n'avais pu reproduire la situation où DATEDIF(date_début;date_fin;"md") retournait un résultat erroné.
En continuant à explorer (car je suis têtu, j'avais constaté une erreur !), je suis retombé sur la situation en question. Il s'agit de cas où la date de début est antérieure au 1er mars 1900 et où le résultat peut être faux.
Premier exemple : date_début = 02/01/1900 et date_fin = 01/03/1900
la réponse est 1 mois et 28 jours
En comptant sur mes doigts je trouve : du 2 janvier au 2 février s'écoule 1 mois, du 2 février au 28 février s'écoulent 26 jours et du 28 février au 1er mars 1 jour soit 27 jours au total.
Deuxième exemple : date_début = 30/01/1900 et date_fin = 01/03/1900 la réponse est 1 mois moins 1 jour (- 1 jour) !
Troisième exemple : date_début = 25/02/1900 et date_fin = 15/03/1900 la réponse est 19 jours
Comptons : du 25 au 28 février = 3 jours + du 28 février au 1er mars = 1 jour + du 1er mars au 15 mars = 14 jours soit 18 jours au total
J'ai tout d'abord pensé que c'était dû au fait que 1900 est considéré à tort par Excel comme une année bissextile.
Mais si dans les exemples on met 2000 à la place de 1900, le résultat est le même.
C'est peut-être la raison pour laquelle Microsoft ne recommande pas l'utilisation de la fonction DATEDIF avec le paramètre "md".
Comment expliquer ces erreurs ? (j'ai une petite idée mais je dois vérifier)
Merci d'avance pour vos commentaires.
Patrick
Bonjour à tous,
J'ai clôturé un peu tôt le sujet "excel calcul de la différence entre 2 dates" (https://forums.commentcamarche.net/forum/affich-37059123-excel-calcul-de-la-difference-entre-2-dates)
Je disais qu'après maints essais je n'avais pu reproduire la situation où DATEDIF(date_début;date_fin;"md") retournait un résultat erroné.
En continuant à explorer (car je suis têtu, j'avais constaté une erreur !), je suis retombé sur la situation en question. Il s'agit de cas où la date de début est antérieure au 1er mars 1900 et où le résultat peut être faux.
Premier exemple : date_début = 02/01/1900 et date_fin = 01/03/1900
la réponse est 1 mois et 28 jours
En comptant sur mes doigts je trouve : du 2 janvier au 2 février s'écoule 1 mois, du 2 février au 28 février s'écoulent 26 jours et du 28 février au 1er mars 1 jour soit 27 jours au total.
Deuxième exemple : date_début = 30/01/1900 et date_fin = 01/03/1900 la réponse est 1 mois moins 1 jour (- 1 jour) !
Troisième exemple : date_début = 25/02/1900 et date_fin = 15/03/1900 la réponse est 19 jours
Comptons : du 25 au 28 février = 3 jours + du 28 février au 1er mars = 1 jour + du 1er mars au 15 mars = 14 jours soit 18 jours au total
J'ai tout d'abord pensé que c'était dû au fait que 1900 est considéré à tort par Excel comme une année bissextile.
Mais si dans les exemples on met 2000 à la place de 1900, le résultat est le même.
C'est peut-être la raison pour laquelle Microsoft ne recommande pas l'utilisation de la fonction DATEDIF avec le paramètre "md".
Comment expliquer ces erreurs ? (j'ai une petite idée mais je dois vérifier)
Merci d'avance pour vos commentaires.
Patrick
Abominafreutroce
Messages postés
19
Date d'inscription
vendredi 22 janvier 2021
Statut
Membre
Dernière intervention
13 février 2021
1
27 janv. 2021 à 10:36
27 janv. 2021 à 10:36
Bonjour,
Excel dit dans dans sa doc :
https://docs.microsoft.com/fr-fr/office/troubleshoot/excel/determine-a-leap-year
que 1900 est traité comme une année bissextile pour des raisons de compatibilité
2000 était bien une année bissextile
2100 ne l'est pas et Excel le prend bien en compte.
Bonne journée
Excel dit dans dans sa doc :
https://docs.microsoft.com/fr-fr/office/troubleshoot/excel/determine-a-leap-year
que 1900 est traité comme une année bissextile pour des raisons de compatibilité
2000 était bien une année bissextile
2100 ne l'est pas et Excel le prend bien en compte.
Bonne journée
patrick1870
Messages postés
64
Date d'inscription
dimanche 23 novembre 2014
Statut
Membre
Dernière intervention
6 juin 2024
11
27 janv. 2021 à 18:43
27 janv. 2021 à 18:43
Merci abominafreutroce
J'avais bien observé que 1900, sans me l'expliquer, était considéré à tort par excel comme une année bissextile.
Je n'ignorais pas que 2000 était une année bissextile et que 2100 ne le sera pas.
A force d'avoir le nez sur un problème on finit par perdre de vue l'essentiel ...
Il est en effet normal que la réponse pour l'année 2000 soit la même que pour l'année 1900.
Mais alors que c'est une anomalie, assumée par Excel, pour 1900 la réponse est normale pour l'année 2000 (ce qui a fini par m'échapper).
Il reste la formulation curieuse de la réponse à mon 2° exemple avec la date_début 31/01/1900 (et non 30/1/1900 comme indiqué par erreur) où le nombre de jours retourné est -1 (moins 1)
Lorsqu'on remplace 1900 par 2000, la fonction DATEDIF(31/01/2000;01/03/2000;"ym") et DATEDIF(31/01/2000;01/03/2000;"md") retourne 1 mois moins 1 jour
et si on remplace 2000 par 2001, la fonction DATEDIF(31/01/2001;01/03/2001;"ym") et DATEDIF(31/01/2001;01/03/2001;"md") retourne 1 mois moins 2 jours
alors que la réponse attendue dans les deux cas est 1 mois (le mois de février) plus 1 jour (le 1er mars)
Ceci n'est qu'un exemple, et je me demande quelle est la règle appliquée par la fonction DATEDIF pour aboutir à ces résultats.
Si quelqu'un a une idée ...
Encore merci à abominafreutroce d'avoir pris la peine d'écrire pour me ramener à l'essentiel.
J'avais bien observé que 1900, sans me l'expliquer, était considéré à tort par excel comme une année bissextile.
Je n'ignorais pas que 2000 était une année bissextile et que 2100 ne le sera pas.
A force d'avoir le nez sur un problème on finit par perdre de vue l'essentiel ...
Il est en effet normal que la réponse pour l'année 2000 soit la même que pour l'année 1900.
Mais alors que c'est une anomalie, assumée par Excel, pour 1900 la réponse est normale pour l'année 2000 (ce qui a fini par m'échapper).
Il reste la formulation curieuse de la réponse à mon 2° exemple avec la date_début 31/01/1900 (et non 30/1/1900 comme indiqué par erreur) où le nombre de jours retourné est -1 (moins 1)
Lorsqu'on remplace 1900 par 2000, la fonction DATEDIF(31/01/2000;01/03/2000;"ym") et DATEDIF(31/01/2000;01/03/2000;"md") retourne 1 mois moins 1 jour
et si on remplace 2000 par 2001, la fonction DATEDIF(31/01/2001;01/03/2001;"ym") et DATEDIF(31/01/2001;01/03/2001;"md") retourne 1 mois moins 2 jours
alors que la réponse attendue dans les deux cas est 1 mois (le mois de février) plus 1 jour (le 1er mars)
Ceci n'est qu'un exemple, et je me demande quelle est la règle appliquée par la fonction DATEDIF pour aboutir à ces résultats.
Si quelqu'un a une idée ...
Encore merci à abominafreutroce d'avoir pris la peine d'écrire pour me ramener à l'essentiel.