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

Nefret 22 Messages postés vendredi 10 novembre 2000Date d'inscription 26 mars 2005 Dernière intervention - 24 mars 2005 à 17:06 - Dernière réponse : Nefret 22 Messages postés vendredi 10 novembre 2000Date d'inscription 26 mars 2005 Dernière intervention
- 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 

5 réponses

Répondre au sujet
WhiteHippo 1270 Messages postés samedi 14 août 2004Date d'inscription 5 avril 2012 Dernière intervention - 24 mars 2005 à 17:35
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de WhiteHippo
japee 1792 Messages postés vendredi 27 décembre 2002Date d'inscription 12 novembre 2016 Dernière intervention - 24 mars 2005 à 19:18
0
Utile
Simple, logique et efficace...

Excellent, ce code, WhiteHippo.



Bonne prog'
Commenter la réponse de japee
WhiteHippo 1270 Messages postés samedi 14 août 2004Date d'inscription 5 avril 2012 Dernière intervention - 24 mars 2005 à 20:32
0
Utile
Merci japee.
Commenter la réponse de WhiteHippo
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 25 mars 2005 à 23:29
0
Utile
"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
Nefret 22 Messages postés vendredi 10 novembre 2000Date d'inscription 26 mars 2005 Dernière intervention - 26 mars 2005 à 16:13
0
Utile
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.