calculer le nombre de semaines dans une année donnée
Je voudrais obtenir le nombre de semaines dans une année donnée. Même si 52
est acceptée comme une généralisé dans le monde de réponse, les calendriers pour 2015
, 2020
et 2026
fait avoir 53
semaines.
Est-il possible que je peux la calculer, ou toutes les fonctions qui vont m'aider?
Commentaire général, pour tout ce qui n'est pas exactement la réponse à la question ci-dessus, mais est utile de connaître: comprendre pourquoi le Calendrier de la classe renvoie 53 "nombre de semaines dans une année", vous devez comprendre comment la
getFirstDayOfWeek()
et getMinimalDaysInFirstWeek()
méthodes sont utilisées dans le calcul. Si le "premier jour de la semaine" est spécifié que le lundi par exemple, et le "minimal jours dans la première semaine est de 4 et le premier lundi de l'année est le 5 janvier, puis la semaine précédant le 5 janvier, est considérée comme faisant partie de cette même année.
OriginalL'auteur AndroidGuy | 2012-01-04
Vous devez vous connecter pour publier un commentaire.
Selon l'article de wikipedia sur Semaine ISO format de la date, Vous pouvez la calculer à l'aide de code suivant.
De ce fait introduire un bug. J'ai juste essayé: pour 2016, retour 52, mais le Calendrier considèrent avoir 53 semaines. En fait, elle a 53 semaines car il commencer avec un jeudi. Je passe en revue votre fonction: je vais poster ci-dessous. Merci de modifier votre réponse afin de supprimer ce bug 🙂
OriginalL'auteur Manjula
Rapide de deux liner:
getActualMaximum
de manière itérative en compte le nombre total en fonction de l'heure, alors quegetMaximum
retourne la valeur maximale de ce champ. DoncgetActualMaximum
est en effet la réponse à cette question.Ce doit être la accepté de répondre!
OriginalL'auteur Samuel
Vous pouvez coder vous-même avec les informations suivantes à partir de ISO semaine date.
En moyenne, une année a 53 semaines tous les 5,6 ans.
Vous pouvez utiliser les informations ci-dessus pour revenir à 52 ou 53 en conséquence 🙂
OriginalL'auteur COD3BOY
Mais c'est une semaine 01. Numéro de la semaine est définie dans la norme ISO-8601. La semaine 1 est celui avec le premier jeudi de l'année.
OriginalL'auteur pap
Je voudrais donner mon point de vue sur l'utilisation de la Date de la nouvelle API de Java 8 avec la main à l'exécution de code:
La sortie est:
Et ainsi de suite...
La
date.withDayOfMonth(1).withMonth(6);
truc, c'est parce que l'omission de cette résultats légèrement différents de la sortie siLocalDate.of(year, 1, 1)
est passé:Je suis encore nouveau pour le Java 8 date de l'API, mais mon je suis assez sûr que ce comportement est dommage parce que 2005-01-01 est la partie de la semaine 53 de 2014. Cela rend
date.range(WeekFields.ISO.weekOfWeekBasedYear()).getMaximum()
de retourner le nombre de semaines pour la semaine en fonction de l'année de 2014.OriginalL'auteur Magnilex
Lien vers la réponse
OriginalL'auteur murt
@Manjula Weerasinge réponse en fait introduire un bug pour 2016. Voici une meilleure solution.
OriginalL'auteur Luca Nicoletti
Cette méthode calcule le nombre de semaines de l'année ISO à l'aide de la Joda time library.
OriginalL'auteur Marian Zetu
Pour le format de date ISO, nous pouvons calculer le nombre de semaines comme suit:
Donc, pour l'année = 2018, il sera de retour 52, pour 2019, il sera également de retour 52, mais à l'horizon 2020, il sera de retour 53 de l'année ISO dispose de 52 ou de 53 semaines.
OriginalL'auteur arifng