Bonjour à tous,
Comment obtenir le nombre de mois entre 2 dates.
TimeSpan s'arrêtant aux nombre de jours.
Merci.
Version imprimable
Bonjour à tous,
Comment obtenir le nombre de mois entre 2 dates.
TimeSpan s'arrêtant aux nombre de jours.
Merci.
Moi je m'embeterai pas et je ferai un truc comme ça...
(J'ai pas affiné avec les jours mais si tu le fait tu auras un double)Code:
1
2 int i = Math.Abs(dt1.Month - dt2.Month); i += Math.Abs((dt1.Year - dt2.Year) * 12);
Apres si tu part d'un TimeSpan c impossible car tu ne peux pas deviner le nombre de jour.
Non ton truc ne marche pas
(par exemple avec le 1/1/2008 et le 31/12/2007)
Je vais faire une boucle qui compte les mois je pense
Oui pardon se serait plus un truc comme ça :
Code:
1
2
3
4
5 if(dt1.Month > dt2.Month) nb += dt1.Month - dt2.Month; else if(dt1.Month < dt2.Month) nb += (12 - dt1.Month) + dt2.Month; nb += Math.Abs((dt1.Year - dt2.Year) * 12);
merci
Bravo, cette méthode fonctionne très bien, et comment connaitre le nombre de jours restants ?
Sinon si t'es pas raciste il y a Microsoft.VisualBasic.DateAndTime.DateDiff : permet de connaitre l'écart entre deux dates, en année, mois, jour, minutes, secondes, ... en fonction de l'interval demandé.
D'ailleurs je me demande bien pourquoi ils n'ont pas intégré cette fonction directement dans le framework .net pour l'avoir directement en C#, c'est quand même super pratique et toute appli de gestion a un jour où l'autre besoin de faire ça !
Merci je viens de capter que j'étais sur un forum C#...
La syntaxe du code proposée est exactement la même en Java qu'en C# :lol:
Bonjour
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 private int NombreDeMois(DateTime DateDebut, DateTime DateFin) { int mois = 0;// init à 0 car on va compter if (DateDebut.Year != DateFin.Year) { // traitement première année for (int compteur = DateDebut.Month; compteur <= 12; ++compteur) mois++; // traitement des années pleines mois += (DateFin.Year - (DateDebut.Year + 1)) * 12; // traitement dernière année for (int compteur = 1; compteur <= DateFin.Month; ++compteur) mois++; } else for (int compteur = DateDebut.Month; compteur <= DateFin.Month; ++compteur) mois++; return mois; }