Comment calculer la différence que les mois à l'aide de Java de l'API Joda
Je suis en train d'écrire un programme qui est censé juste calculer les mois entre 2 dates et renvoie la valeur du programme. Par exemple, si je dois calculer le nombre de mois compris entre le 1er avril et le 30 juin (qui est un quart de, 3 mois), et j'utilise le code suivant:
DateTime start = new DateTime().withDate(2011, 4, 1);
DateTime end = new DateTime().withDate(2011, 6, 30);
Months mt = Months.monthsBetween(start, end);
int monthDiff = mt.getMonths();
À l'aide de cela, je suis encore en train de "2" comme le nombre de mois, alors qu'il est en fait "3" mois. Ceci est un exemple de ce que je veux. Je ne suis que le calcul du nombre de mois (c'est à dire à partir du 1er du mois de début t de la dernière date de la fin du mois) et je n'ai pas besoin d'analyse supplémentaires comme des jours, semaines, heures, etc. Comment puis-je y parvenir?
Toute aide serait appréciée.
Je crois que le Yoda le temps de réponse est correcte. Entre le 1er avril (non compris) 30 juin serait presque 3 mois. Je pense que les deux dates ont la même heure (00:00) et donc le 30 juin n'est pas vraiment inclus dans la gamme.
Thats droit. La Période affichée est de 2 mois, 4 semaines et 1 jour.
OriginalL'auteur Abhay Bhargav | 2011-09-18
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de la
withDaysRemoved()
partie pour s'assurer que l'ajout d'un nombre de mois de travaux. Sinon deux dates comme2011-04-15
et2011-06-14
serait toujours la réponse étant2
Ce n'est pas de travail. Par exemple, il ne parvient pas pour 2015-06-10 et 2015-07-01 ("mois" se termine par 1 au lieu de 2). La bonne solution peut être trouvée ici: stackoverflow.com/a/1086432/1369016
OriginalL'auteur Brian Roach
Pourquoi vous attendez-vous la réponse à
3 months
? La réponse précise est de deux mois et un peu, ce qui résulte en la deux mois vous obtenez.Si vous voulez le nombre de mois qui sont “touchés” par cette intervalle, c'est une chose totalement différente.
Juste ajouter 1 au résultat de la différence.Je ne veux pas ajouter un mois à une date, mais pour ajouter 1 à la
monthDiff
variable en question.Je sais. Si les dates ont été 2011-04-15 et 2011-06-14, qui échoue parce qu'getMonths() renvoie 1.
OriginalL'auteur Roland Illig
OriginalL'auteur buritos
Laisser
y1
etm1
être l'année et le mois de la date de début,et
y2
etm2
être l'année et le mois de la date de fin.Ensuite, le nombre de mois entre
de début et de fin, y compris les mois de début et dates de fin est
OriginalL'auteur Jiri Kriz
Joda algorithme comptée différence entre ces deux dates. Ce pseudo-code est le moyen le plus facile pour expliquer comment cela fonctionne:
À faire ce que vous voulez vous avez besoin pour "améliorer" joda algorithme:
OriginalL'auteur smas
OriginalL'auteur user2818074