IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Relance sujet numéro de semaine et erreur de n°


Sujet :

Collection et Stream Java

  1. #1
    Membre averti
    Inscrit en
    Janvier 2003
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 47
    Par défaut Relance sujet numéro de semaine et erreur de n°
    Bonjour,

    Je me permets de relancer le sujet : http://www.developpez.net/forums/sho...9&postcount=11 car le fait que le lundi 31/12/2007 soit en semaine 1 est faux.

    Il est est devrait être en semaine 53 en effet si on set le nombre de jour de la première semaine de 2007 au nombres de jours effectif de cette semaine là (6 si on regarde un calandrier en Locale française) on obtient bien 53!!

    D'aileurs pour mon projet j'ai le même soucis de n° erroné et je ne sais pas comment déterminer pour une année donnée le nombre de jour de la première semaine de janvier (qui ne commence pas forcément un lundi sinon ça serait trop simple...).

    Cordialement.

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Citation Envoyé par Theoden Voir le message
    car le fait que le lundi 31/12/2007 soit en semaine 1 est faux.
    Pourtant ce n'est pas ce qui est indiqué sur le site http://www.almanach.free.fr/ ni sur l'almanach posé sur mon bureau, ni par les règles de calcul du numéro de semaine de l'ISO...

    Donc donne nous une source pour ce que tu affirmes

    a++

  3. #3
    Membre averti
    Inscrit en
    Janvier 2003
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 47
    Par défaut
    Dison que ce que dit un site web ne me semble pas forcément une référence.

    Ce qui me choque est qu'un jour de l'année 2008 soit considéré comme appartenant à une semaine de 2009 (ce qui est faut en terme Grégorien mais vrai en terme ISO apparement).

    Le soucis étant alors que la classe Java va nous sortir un numéro de semaine = 1 pour le 31/12/2008 (en fait pour les jours compris entre le 29 et le 31 si je comprends bien le site wikipedia) alors qu'on attendrait 52 ou 53 (bha ouai on doit être c*ns ).

    Mon soucis est que mes utilisateurs vont saisir un n° de semaine sur lequel mon appli va faire un test (grosso-modo une entité à une plage de validité et on saisie un n° de semaine qui doit être dans cette plage) du coup si je tape 2 pour une entité allant du 1/01/2008 au 31/12/2008 le test echoue! (test :
    n° de semaine de la date de début =< n° entré =< n° de semaine date de fin)

    Parce que malheureusement à ma connaissance 1 est inférieur à 2

    Donc pour moi le calcul du n° de semaine d'une date (liée à une année jusqu'à preuve du contraire) est faux dans les cas où il me dit que le 31/12/2008 est en semaine 1 (même si je suis d'accord pour le calcul ISO c'est bien semaine 1 mais en 2009 )

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Theoden Voir le message
    Dison que ce que dit un site web ne me semble pas forcément une référence.
    Mais on peut commencer à y prêter attention lorsque trois sources différentes donnent le même résultat (et même 4 si on prend en compte le résultat de la classe Calendar).

    Citation Envoyé par Theoden Voir le message
    Ce qui me choque est qu'un jour de l'année 2008 soit considéré comme appartenant à une semaine de 2009 (ce qui est faut en terme Grégorien mais vrai en terme ISO apparement).
    Je ne sais pas si c'est faux en terme Grégorien, mais cela ne me choque pas (c'est rare que la semaine 1 commence le 1er janvier).

    Citation Envoyé par Theoden Voir le message
    Mon soucis est que mes utilisateurs vont saisir un n° de semaine sur lequel mon appli va faire un test (grosso-modo une entité à une plage de validité et on saisie un n° de semaine qui doit être dans cette plage) du coup si je tape 2 pour une entité allant du 1/01/2008 au 31/12/2008 le test echoue! (test :
    n° de semaine de la date de début =< n° entré =< n° de semaine date de fin)

    Parce que malheureusement à ma connaissance 1 est inférieur à 2
    Dans ce cas tu devrais changer ton test, et récupérer les dates correspondant à cette semaine et comparer les dates et non pas les numéro de la semaine.

    Par exemple pour récupérer le premier jour d'une semaine particulière dans une année :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	public static Date getFirstDayOfWeek(int year, int weekNumber) {
    		Calendar c = Calendar.getInstance(Locale.FRANCE);
    		c.clear();	// On vide les données
    		c.set(Calendar.YEAR, year); // On spécifie l'année
    		c.set(Calendar.WEEK_OF_YEAR, weekNumber); // et le numéro de la semaine
    		return c.getTime();
    	}
    a++

  5. #5
    Membre Expert
    Avatar de Alexandre T
    Homme Profil pro
    Ingénieur DevOps
    Inscrit en
    Mai 2002
    Messages
    1 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 214
    Par défaut
    Je n'arrive pas à retrouver trace de mes sources. (Il me semble que c'était dans le texte de la norme ISO). Mais le numéro de la semaine ne fait pas partie du calendrier grégorien. Cela a été rajouté dans la norme ISO. Par ailleurs, un exemple en témoigne : le calcul du numéro de la semaine est différent entre les pays du monde utilisant le calendrier grégorien. Cette différence vient du jour marquant le début de la semaine : Lundi en France, Dimanche aux USA.

    Sinon que le lundi 31 décembre 2007 soit en semaine 1 ne me choque pas.

    Pour information, en France, c'est le jeudi qui détermine le numéro 53 ou le numéro 1.
    Si le 1/1 est un jeudi alors on est en semaine 1
    Si le 31/12 est jeudi, alors du on est en semaine 53. Et le vendredi, samedi, dimanche 1 - 2 - 3 janvier sont en semaine 53 !
    Aux Etats-Unis, c'est le mercredi qui fait la rupture !
    Alexandre Tranchant
    Ingénieur DevOps pour le Ministère de l'Écologie
    Retrouvez mes articles sur PHP et Symfony

Discussions similaires

  1. [Crystal] transformation d'une date en numéro de semaine
    Par barna dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 24/03/2017, 09h41
  2. [C#] Comment récupérer le numéro de semaine d'une date ?
    Par farfadet dans le forum Windows Forms
    Réponses: 9
    Dernier message: 17/07/2013, 16h33
  3. [excel]calcul du numéro de semaine
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 13/10/2005, 11h57
  4. [Calendar] Problème de numéro de semaine de l'année
    Par gaia_dev dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 29/11/2004, 11h44
  5. Calcul des numéros de semaine d'un calendrier
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 06/11/2002, 21h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo