stotnet
Messages postés2Date d'inscriptionlundi 25 mai 2009StatutMembreDernière intervention22 février 2010
-
22 févr. 2010 à 14:00
Whismeril
Messages postés18414Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 7 juin 2023
-
23 sept. 2016 à 11:41
bonjour
je souhaite récupérer la différence entre 2 dates en MOIS en c#
en faisant (date1 - date2).Days on a bien le nb de jours
on peut avoir le nb d'heures, de minutes, de secondes,de millisecondes(!) mais pas le nb de mois.
par exemple si ma date1 est 01/03/2010 et ma date 2 est 01/02/2007 je veux récupérer 37 mois ou au pire (36,92) si çà tient compte de l'heure.
BunoCS
Messages postés15372Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention 5 juin 2023102 22 févr. 2010 à 14:53
Sinon, pour être un peu plus "exact", je te propose le code suivant, que je n'ai pas testé
int iMonth = date1.Month - date2.Month;
int iYear = date1.Year - date2.Year;
iMonth += iYear * 12;
Je pense qu'il vaut mieux rajouter des valeurs absolues.
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
swedikiluka
Messages postés42Date d'inscriptionsamedi 19 mars 2005StatutMembreDernière intervention22 février 2010 22 févr. 2010 à 14:51
si tu as une date 01/01/2009
et une autre 01/03/2007 tu veux avoir les mois entre les deux dates
tu fais
annee:2009-2007=2 * 12=24
mois:1-3=-2
jrs:1-1=0;
au finish 24+(-2)+0=22mois
bne chance
Vous n’avez pas trouvé la réponse que vous recherchez ?
BunoCS
Messages postés15372Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention 5 juin 2023102 22 févr. 2010 à 15:12
Après quelques recherches, j'ai trouvé 2 idées:
- une méthode SqlMethods.DateDiffMonth() dans le namespace Linq (voir en fin de page)
- un code un peu plus poussé qui prend en compte la différence de longueur des mois et des années bissextiles
Hope it'll help
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
swedikiluka
Messages postés42Date d'inscriptionsamedi 19 mars 2005StatutMembreDernière intervention22 février 2010 22 févr. 2010 à 15:23
au nbre de jour diviser par 30 comme moyenne soit
si tu as une date 01/01/2009
et une autre 01/03/2007 tu veux avoir les mois entre les deux dates
tu fais
annee:2009-2007=2 * 12=24
mois:1-3=-2
jrs:1-1=0/30=0;
au finish 24+(-2)+0=22mois
bne chance
oublie d'une parenthèse:
nb += Math.Abs(((dateFin.Year - dateDeb.Year)-1) * 12);
Whismeril
Messages postés18414Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 7 juin 2023624 23 sept. 2016 à 11:41
Bonjour
3 minutes après ton premier message, tu aurais le modifier, en cliquant sur "modifier", c'est possible pendant une heure environ.
D'autre part, tu exhumes un sujet résolu, vieux de plus de 6ans, pour apporter une solution hors contexte et "fausse".
Tu nous proposes des variables qui sortent d'en ne sait ou et déclarées var, or avec var, on ne peut pas faire de calcul sur les dates <gras></saufgras> à ce que avant (qui n'est pas montré) l'IDE sache précisément qu'il s'agit de date.
Var est à proscrire dans 99% des cas, il ne doit être utilisé que et uniquement que dans une requête Linq ou tu crées un type anonyme (et donc pas prédéfini)