Différence entre deux dates

Fildomen Messages postés 805 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 30 octobre 2010 - 28 oct. 2004 à 00:59
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 - 28 oct. 2004 à 10:16
salut
je cherche à avoir la différence entre deux dates, et le résultat doit se mettre dans un DateTime et non dans un TimeSpan, car la valeur max d'un time span et une journée et pas une année, et je vois bien que quand je fais DateTime.now.substruct(DateTime.now),et si je le convertit en datetime comme ca:

DateTime aa = new DateTime(DateTime.now.substruct(DateTime.now).Ticks);

aa.Year = 1???? pourquoi????

Svp aidez moi a faire la différence entre deux dates mais qui gère même les années.

merci

http://www.devportail.tk

2 réponses

taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
28 oct. 2004 à 10:09
il te renvoie 1 parce que la valeur minimum de datetime est 01/01/0001. donc, si tu fais aa. days, tu auras 1 et aa.month, tu auras 1.

Prends ta première date, soustrait lui le jour et le month de la deuxieme
Ensuite tu récupere juste les années et tu les soustrait l'une à l'autre.

Datetime dat1;
datetime dat2;

dat1.addDays( -dat2.Days);
dat2.addMonth(-dat2.Months);

int DiffDateEnAnne  = dat1.years - dat2.years;


Tu peux aussi pousser plus loin en soutrayant les minutes et les seconedes et les millisecondes

voila une solution
0
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
28 oct. 2004 à 10:16
Bon , le code précedent, c'est pour avoir le nombre d'annee de diff.
Mais à la réflexion, je pense que tu veux avoir l'écart entre deux dates.

fait ton substract, et ton newate time.

Soustrait juste une annee a ton résultat , par contre, il faudra bien que tu testes la date la plus grande , pour faire un substract qui te renvoie une valeur positive.
Il faut peut etre aussi enlevé un jour et un month, mais ca , pas sur
0
Rejoignez-nous