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

C++Builder Discussion :

Trouver le numéro de semaine d'une date


Sujet :

C++Builder

  1. #1
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut Trouver le numéro de semaine d'une date
    Bonjour a tous,

    je suis a la recherche d'une fonction permettant de trouver le numéro de semaine d'une date (TDate).

    J'ai trouvé ce code mais apparement la fonction WeekOfTheYear() n'est pas disponible sous C++ Builder 5 .

    Connaissez vous un autre moyen d'obtenir le numéro de semaine?

    Merci d'avance.

  2. #2
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Dans ton code, est-ce que tu as mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include "DateUtils.hpp"

  3. #3
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Oui, j'ai bien ajouté DateUtils mais il ne la trouve pas.

  4. #4
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Bon, après des jours de recherches, j'ai finalement fais ma petite fonction qui semble fonctionnée (j'ai fais des tests manuels sur une dizaines de dates).

    J'ai utilisé la formule trouvée sur cette page. Comme quoi on n'est jamais aussi bien servi que par soit même!

    Voilà donc ma fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    int  GetWeekInYear( TDate aDate )
    {
      Word y, m, d ;
      int weekInYear ;
      TDate firstDayInYear ;
      DecodeDate( aDate,y, m, d );
      firstDayInYear = EncodeDate(y, 1, 1 ); // 1er janvier
     
      int jFirstJanuary = DayOfWeek(firstDayInYear) - 1 ;  // jour du premier janvier
      int qDayInYear    = aDate - firstDayInYear + 1;      // q-ième jour de l'année
     
    // utilisation de la formule [W = ( J + N + 5 ) : 7 - ( J : 5 ) ]
      weekInYear = (jFirstJanuary + qDayInYear + 5) / 7 - (jFirstJanuary / 5);
     
      if(weekInYear == 0)
        weekInYear = GetWeekInYear( EncodeDate(y-1,12,31));
     
      if(m == 12)
      {
        int dayInWeek = DayOfWeek( aDate );
        if((dayInWeek == 2 && (d >= 29 && d <= 31)) ||
           (dayInWeek == 3 && (d == 30 || d == 31)) ||
           (dayInWeek == 4 &&  d == 31)) weekInYear = 1;
      }
     
      return weekInYear;
    }
    Je poste au cas où ça peut intéresser quelqu'un dans le futur...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [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
  2. [AC-2003] Récupérer le numéro de semaine sur une date
    Par Snow06 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 21/09/2010, 16h18
  3. Réponses: 3
    Dernier message: 03/02/2010, 14h56
  4. obtenir le numéro de semaine d'une date et vis-et-versa ?
    Par clavier12AZQSWX dans le forum Flash/Flex
    Réponses: 1
    Dernier message: 18/08/2009, 18h16
  5. Calculer le numéro de semaine d'une date
    Par chandlerbing77 dans le forum Access
    Réponses: 2
    Dernier message: 09/06/2006, 12h26

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