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 jour de l'année à partir de son numéro [FAQ]


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 23
    Points : 13
    Points
    13
    Par défaut [RESOLU] Trouver le jour de l'année à partir de son numéro
    Salut,

    en fait tout est dans le titre... Je cherche le 268ème jour de l'année 1998, par exemple et je voudrait récupérer ce jour sous la forme Lundi 23 mai 1998... Vous voyez ???

    Merci pour votre aide...
    Le miel, ça colle dans les poils, mais c'est pas graaaaaaaaaave !!!
    Pensez à mettre [Résolu] dans le sujet de votre message quand votre problème est arrangé...

  2. #2
    Membre régulier
    Profil pro
    Architecte logiciel
    Inscrit en
    Octobre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Architecte logiciel

    Informations forums :
    Inscription : Octobre 2002
    Messages : 64
    Points : 88
    Points
    88
    Par défaut
    salut,
    voici 1 code qui affiche le 268 eme jour de l'annee 1998 avec le format que tu demande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TDateTime d=TDateTime(1998,1,1);
               d=d.operator +(268);
               ShowMessage(FormatDateTime("dddd dd mmmm yyyy ",d));
    A+.
    THE KING

  3. #3
    Membre régulier
    Inscrit en
    Mai 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 86
    Points : 94
    Points
    94
    Par défaut
    Salut,
    Ce code te donne la date du NbJour eme jour de l'annee Annee (>1900) et quel jour de la semaine c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    int NbJours;
    int Annee;
    TDate Date;
    unsigned short Year, Month, Day;
    int Jour;
     
        if((double)(Annee%4)>0) // pas année bisextile
            Date=(int)(Annee-1900)*365+NbJours+(int)((Annee-1900)/4)+1;
        else //Année bisextile
            Date=(int)(Annee-1900)*365+NbJours+(int)((Annee-1900)/4);
     
        Date.DecodeDate(&Year,&Month,&Day);   //Donne jour,mois,annee (23 05 2001)
        Jour=Date.DayOfWeek(); // Jour de la semaine (1=dim,7=sam)
    @+

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Merci à tous les deux,

    J'ai essayé les deux codes et ils marchent à la perfection...

    Merci encore...
    Le miel, ça colle dans les poils, mais c'est pas graaaaaaaaaave !!!
    Pensez à mettre [Résolu] dans le sujet de votre message quand votre problème est arrangé...

  5. #5
    Membre du Club Avatar de Revan777
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 87
    Points : 52
    Points
    52
    Par défaut
    Salut,
    en fait, j'aimerais faire l'inverse.
    Comment je peux trouver le numéro du jour de l'année après avoir crée un objet TDate du jour actuel ?
    Merki.

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 481
    Points : 242
    Points
    242
    Par défaut
    Ilsuffit de créer un TDateTime du 1er janvier de l'année et de faire la différence :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TDateTime dtActuel = Now();
    Word an, mois, jour;
    DecodeDate(dtActuel , an, mois, jour);
    TDateTime dtDebut (an, mois, jour);
    int dif = int(dtActuel - dtDebut)+ 1;
    Le 1er janvier étant considéré commele premier jour de l'année.
    Gilbert PASQUALINI

  7. #7
    Rédacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Points : 1 271
    Points
    1 271
    Par défaut
    Citation Envoyé par tomtom7
    Salut,
    Ce code te donne la date du NbJour eme jour de l'annee Annee (>1900) et quel jour de la semaine c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    int NbJours;
    int Annee;
    TDate Date;
    unsigned short Year, Month, Day;
    int Jour;
     
        if((double)(Annee%4)>0) // pas année bisextile
            Date=(int)(Annee-1900)*365+NbJours+(int)((Annee-1900)/4)+1;
        else //Année bisextile
            Date=(int)(Annee-1900)*365+NbJours+(int)((Annee-1900)/4);
     
        Date.DecodeDate(&Year,&Month,&Day);   //Donne jour,mois,annee (23 05 2001)
        Jour=Date.DayOfWeek(); // Jour de la semaine (1=dim,7=sam)
    @+
    Attention, ce code ne marchera pas tout le temps. Il ne tient pas compte du fait que les fins de siècle ne sont bisextiles que tous les 400 ans

  8. #8
    Membre actif
    Avatar de Djob
    Inscrit en
    Août 2002
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 215
    Points : 279
    Points
    279
    Par défaut
    Attention, ce code ne marchera pas tout le temps. Il ne tient pas compte du fait que les fins de siècle ne sont bisextiles que tous les 400 ans

    oui bien vu !!!
    apparement les résultats sont faux à partir de l'année 2101..le code ne fonctionne qu'entre 1901 et 2100...

    il vaut mieux utiliser la fonction "DayOfTheWeek" proposée dans la FAQ :
    http://c.developpez.com/faq/bcb/?pag...mainedansannee


    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
     
    #include "DateUtils.hpp"
     
     
    // NumDayInYear : numero du jour désirée ex : le 23 eme jour
    int GetNumDayOfTheWeek(int NumDayInYear,int Year)
    {
      //<1900 non géré 
      if&#40;Year<1900&#41; return -1 ;
     
      TDateTime dt = EncodeDateTime&#40;1900,1,1,0,0,0,0&#41;;
      int nb_years = Year - 1900;
      dt= IncYear&#40;dt,nb_years&#41;;
      dt =IncDay&#40;dt,NumDayInYear-1 &#41;;
      return DayOfTheWeek&#40;dt&#41;;
    &#125;

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 11/10/2011, 15h04
  2. [XL-2003] Récupérer jour, mois et année à partir d'une date
    Par adamsmith dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 24/08/2009, 18h11
  3. trouver le jour de la semaine à partir de la date
    Par coquero dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 25/06/2008, 19h22
  4. [Date] Jour à partir de son numéro dans l'année
    Par boby123 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 22/11/2006, 17h58
  5. Réponses: 6
    Dernier message: 25/09/2006, 15h51

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