Obtenez le nombre de semaines entre deux dates.
Je travaille dans un projet et j'ai eu deux types de Date. Je veux calculer le nombre de semaines entre ces deux dates. Les dates peuvent être différentes années. Est-il une bonne solution pour cela?
J'ai essayé de implemenent ce avec Joda-time qui a été suggéré dans d'autres sujets..
Je ne suis pas familier avec cette bibliothèque, mais j'ai essayé de faire quelque chose comme ceci:
public static int getNumberOfWeeks(Date f, Date l){
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(f);
c2.setTime(l);
DateTime start = new DateTime(c1.YEAR, c1.MONTH, c1.DAY_OF_MONTH, 0, 0, 0, 0);
DateTime end = new DateTime(c2.YEAR, c2.MONTH, c2.DAY_OF_MONTH, 0, 0, 0, 0);
Interval interval = new Interval(start, end);
Period p = interval.toPeriod();
return p.getWeeks();
}
Mais c'est complètement faux... des suggestions ?
source d'informationauteur Anton Smith
Vous devez vous connecter pour publier un commentaire.
Il est assez facile avec joda time:
La mise à jour de la réponse à compte pour Java 8
À l'aide de la date de l'arithmétique dans
java.util.Calendar
:essayer cela doit fonctionner de
Prendre un coup d'oeil à l'article suivant: Java - calculer la différence entre deux dates
La daysBetween méthode va vous permettre d'obtenir le nombre de jours entre deux dates. Il vous suffit ensuite de diviser par 7 pour obtenir le nombre de semaines complètes.
Espère que cela peut vous Aider à
Vous pouvez le faire de la manière suivante:
Cela devrait vous donner un entier représentant le nombre de semaines entre les deux dates.
Joda Time calcule semaines avec des durées de deux dates qui ne peuvent pas répondre à nos besoins dans certains cas. J'ai une méthode avec Joda Temps pour calculer naturel semaines entre les deux dates. L'espoir peut vous aider. Si vous n'utilisez pas de Joda Temps, vous pouvez modifier le code avec Calendrier, pour faire la même chose.
Comprend l'exercice différences.
Cela a fonctionné pour moi 🙂
si cette méthode retourne 0 ils sont dans la même semaine
si cette méthode renvoie 1 date de fin est la semaine après la date de début
si cette méthode renvoie -1 date de fin est la semaine avant la date de début
vous obtenez l'idée
java.temps
La java.le temps cadre est intégré dans Java 8 et les versions ultérieures. Ces nouvelles classes supplanter l'ancienne date-classes de temps en bundle avec les premières versions de Java. Ces classes sont également supplanter la très réussie Joda-Time cadre, et sont construites par les mêmes personnes, y compris dirigé par Stephen Colbourne.
ThreeTen-Extra
La ThreeTen-Extra projet est l'extension officielle de la java.le temps cadre intégré dans Java 8 et les versions ultérieures. Ce projet est le terrain d'essai pour de possibles futurs ajouts à java.temps, et est destiné à être utile dans son propre droit.
Weeks
classeCe projet comprend un
Semaines
classe pour représenter un certain nombre de semaines. Non seulement il peut calculer, il est également destiné à être utilisé dans votre code comme un type sûr de l'objet. Cette utilisation contribue également à rendre votre code d'auto-documentation.Vous pouvez instancier en offrant une paire de points dans le temps avec le
Semaines.entre
méthode. Ces points dans le temps peut être quelque chose de la mise en œuvre de java.temps.temporelle.Temporelle y comprisInstantané
LocalDate
OffsetDateTime
ZonedDateTime
Year
YearMonth
et plus.Votre
java.util.Date
objets peuvent être facilement converties enInstant
des objets, des moments dans le scénario de l'UTC avec une résolution en nanosecondes. Regarder les nouvelles méthodes ajoutée à l'ancienne date du temps des classes. Pour aller à partir de la Date Instantanée, appeljava.util.Date: toInstant
.Vous pouvez demander le nombre de semaines. Vous pouvez également faire beaucoup plus.
Si vous voulez le nombre exact de semaines complètes d'utiliser la méthode ci-dessous, où la date de fin est exclusif:
Si vous voulez un ceil version de ce, ci-dessous: