Obtenir le numéro de semaine de l'année en cours

wiskywisky Membre
10:40 modifié dans API AppKit #1
Bonjour à  tous,

Je viens avec une question un peu bizar: Comment obtenir le numéro de la semaine en cours de l'année en cour ?

J'ai trouver ça : http://www.univ-lemans.fr/~hainry/articles/semaine.html
Il présente toute les formules pour inventer la roue, mais avant de le faire, existe t'il un moyen simple de l'obtenir en COCOA (ou C) ?

Merci d'avance !

Réponses

  • GercofisGercofis Membre
    décembre 2008 modifié #2
    NSCalendarDate * ceJour = [NSCalendarDate calendarDate] ;
    int jourDeLaSemaine = [ceJour dayOfWeek] ; // 0 étant le dimanche
    autant pour moi j'ai répondu un peu vite
  • wiskywisky Membre
    10:40 modifié #3
    Merci, j'ai bien chercher et je ne trouve pas pour obtenir : weekOfYear
    Il y a bien "CFAbsoluteTimeGetWeekOfYear" mais je vois pas comment l'utiliser...
  • NoNo Membre
    10:40 modifié #4
    Faut passer par NSDateComponents :
    <br />{<br />    NSDate *datejour=[NSDate date];<br />    NSCalendar *cd=[NSCalendar currentCalendar];<br />    NSDateComponents *dc;<br />    dc=[cd components:NSWeekCalendarUnit fromDate:datejour];<br />    NSLog(@&quot;semaine n°%i&quot;, [dc week]);<br />}<br />
    

  • wiskywisky Membre
    10:40 modifié #5
    J'étais pas très loin, Merci beaucoup.

    :p :p :p   <3 <3 <3 <3 <3
  • AliGatorAliGator Membre, Modérateur
    10:40 modifié #6
    Ceci dit attention, non seulement le numéro de semaine dépend du calendrier utilisé (bon, NSDateComponents gère ça bien, et en général on utilise tous les calendrier grégorien mais bon), mais il dépend aussi de l'interprétation : cela dépend si l'on considère déjà  que la première semaine est 0 ou 1 mais bon ça ça va encore... mais ça dépend aussi d'à  partir de quand on compte, si l'année commence en plein milieu de semaine :
    - si l'année commence un mardi, on compte cette première semaine ? Et si elle commence un samedi ou un dimanche ? Bref quel est le point de repère pour commencer à  compter
    - dans la même idée, la semaine commence-t-elle le dimanche (comme dans les systèmes anglais) ou le lundi ? Donc si tu demandes le numéro de la semaine pour une date qui tombe un dimanche, c'est le même numéro de semaine que le samedi qui le précède ? ou que le lundi qui le suit ?

    Voilà  des petites subtilités à  vérifier dans ce genre de cas ;)
  • GercofisGercofis Membre
    décembre 2008 modifié #7
    dans 1228507840:

    NSCalendarDate * ceJour = [NSCalendarDate calendarDate] ;
    ; // 0 étant le dimanche
    autant pour moi j'ai répondu un peu vite

    JE vais essayer de me rattraper
    <br />NSCalendarDate * ceJour = [NSCalendarDate calendarDate] ;<br />int numSemaine = [ceJour dayOfYear]/7+1 ;<br />
    

    ça doit le faire :)beta:
    tester donc ça marche...
  • AliGatorAliGator Membre, Modérateur
    10:40 modifié #8
    dans 1228557482:

    JE vais essayer de me rattraper
    <br />NSCalendarDate * ceJour = [NSCalendarDate calendarDate] ;<br />int numSemaine = [ceJour dayOfYear]/7+1 ;<br />
    

    ça doit le faire :)beta:
    tester donc ça marche...
    Heu... même remarque que plus haut, attention à  la référence que l'on prend et au jour qui sert de transition, dans ton exemple ça va changer de numéro de semaine... le même jour de la semaine que le 1er janvier de l'année, et non pas le dimanche ou le lundi.
  • GercofisGercofis Membre
    10:40 modifié #9
    ça reste a affiner, au demeurant c'est simple et en cas de retour la dessus dans 5 ans ça le fait
Connectez-vous ou Inscrivez-vous pour répondre.