Comment calculer le nombre de mois séparant deux dates ? [Résolu]

Messages postés
22
Date d'inscription
vendredi 10 novembre 2000
Dernière intervention
26 mars 2005
- 24 mars 2005 à 17:06 - Dernière réponse :
Messages postés
22
Date d'inscription
vendredi 10 novembre 2000
Dernière intervention
26 mars 2005
- 26 mars 2005 à 16:13
Bonjour,



j'aimerai savoir s'il existe un moyen de calculer le nombre de mois qui sépare deux dates.



j'ai

DateAcq, DateDebEx : string;

DateAcq := TxtDateAcq.text;

DateDebEx := TxtDateDebEx.text;

proratadeg := MonthsBetween(StrTodate(DateAcq), StrTodate(DateDebEx));



la fonction marche, mais le problème est que j'aimerai calculer en mois et non pas en jour.

Par exemple, si j'ai

DateAcq := 24/03/05;

DateDebEx := 01/01/06;



proratadeg est égal à 9 alors que
je voudrais trouver 10 (c'est à dire que le numéro du jour ne compte
pas, juste le mois et l'année).
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
1270
Date d'inscription
samedi 14 août 2004
Dernière intervention
5 avril 2012
- 24 mars 2005 à 17:35
3
Merci
Bonjour

Variables ajoutées :

AnneeAcq, MoisAcq, JourAcq : Word ;
AnneeDebEx, MoisDebEx, JourDebEx: Word ;

Code :

DecodeDate(StrTodate(DateAcq),AnneeAcq,MoisAcq,JourAcq);
DecodeDate(StrTodate(DateDebEx),AnneeDebEx,MoisDebEx,JourDebEx);


proratadeg := 12 * ( AnneeDebEx - AnneeAcq ) - MoisAcq + MoisDebEx ;

Cordialement.

Merci WhiteHippo 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de WhiteHippo
Messages postés
1799
Date d'inscription
vendredi 27 décembre 2002
Dernière intervention
19 juillet 2018
- 24 mars 2005 à 19:18
0
Merci
Simple, logique et efficace...

Excellent, ce code, WhiteHippo.



Bonne prog'
Commenter la réponse de japee
Messages postés
1270
Date d'inscription
samedi 14 août 2004
Dernière intervention
5 avril 2012
- 24 mars 2005 à 20:32
0
Merci
Merci japee.
Commenter la réponse de WhiteHippo
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Dernière intervention
9 janvier 2013
- 25 mars 2005 à 23:29
0
Merci
"proratadeg est égal à 9 alors que je voudrais trouver 10"

Si l'on regarde l'exemple donné, l'écart est bien de neuf mois ...et 8 jours.
Entre ce que le fonction renvoie et ce que tu souhaites obtenir, il y discordance.

Le code proposé par WhiteHippo est donc parfaitement adapté à ce que tu recherches. Saluons sa proposition intéressante.


<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Commenter la réponse de cs_Delphiprog
Messages postés
22
Date d'inscription
vendredi 10 novembre 2000
Dernière intervention
26 mars 2005
- 26 mars 2005 à 16:13
0
Merci
Merci beaucoup pour ton aide
WhiteHippo, ta proposition simple et compréhensible règle mon problème !
Commenter la réponse de Nefret

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.