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++ Discussion :

Premier lundi du mois


Sujet :

C++

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 10
    Par défaut Premier lundi du mois
    Bonjour,
    Je développe actuellement un programme dont une partie fait du publipostage . . .
    Et j'aurai besoin que mon programme connaisse la date du premier lundi du mois.
    J'ai regardé la fonction date() mais je n'ai pas trouvé mon bonheur...
    Quelqu'un pourrait-il m'aider ?

    Merci àvous ^^

  2. #2
    Membre confirmé Avatar de BigNic
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 195
    Par défaut
    Peux-tu préciser le mode de fonctionnement de ton programme ?
    Il tourne tout les jours et doit savoir qu'aujourd'hui il est le premier lundi du mois ?
    Ou il tourne n'importe quand et doit trouver qu'elle est le premier d'un mois donné ?

    Sinon as-tu essaillé un truc simple genre si le jour de la date est inférieur à 7 et qu'on est un lundi alors c'est le premier lundi du mois.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 10
    Par défaut
    alors en fait il tourne n'importe quand et doit trouver qu'elle est le premier lundi d'un mois donné

  4. #4
    Membre chevronné Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Par défaut
    Salut,

    Il faut que tu utilises un calendrier, une fois ton calendrier fait (tu dois meme pouvoir en trouver des deja tout fait sur le net) tu peux demander tout ce que tu veux facilement.

  5. #5
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Salut,

    Sur ce lien, tu trouveras des algorithmes pour t'aider (notamment calculer le jour de la semaine à partir d'une date) :
    http://www.chez.com/algor/date/date.htm

  6. #6
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Une possibilité illustrée sur des exemples pour simplifier.
    On se donne comme donnée de départ le premier lundi de janvier (le 2 janvier) pour définir une origine de nos dates en 2-7 = -5 "janvier 2006" (le 7 est la durée de la semaine)
    Pour trouver le premier lundi de septembre, on calcule la durée D qui sépare notre origine de septembre :
    D = 5+31+28+31+30+31+30+31+31 = 248
    La division entière par la durée de la semaine donne comme reste
    D%7 = 3 ;
    Le permier lundi de septembre est le 7-3 = 4 septembre

    Autre exemple pour le premier lundi de février 2007
    D = 5+365+31= 401
    D%7 = 2
    Le premier lundi de février 2007 est le 7-2 = 5 février 2007

    Autre exemple pour le premier lundi de octobre 2008
    D= 279+365+365 = 1009 (279 parce que 2008 est bissextile)
    D%7 = 1
    Le premier lundi de octobre 2008 est le 7-1 = 6 octobre 2008

    De façon itérative :
    Janvier 2006 : 2 janvier Origine -5
    Fevrier 2006 : 5+31 = 36 ; 36%7 = 1 -> 6 février -> origine -1
    mars 2006 : 1+28 = 29 ; 29%7 = 1 -> 6 mars -> origine -1
    avril 2006 : 1+31 = 32 ; 32%7 = 4 -> 3 avril -> origine -4
    mai 2006 : 4+30 = 34 ; 34%7 = 6-> 1 mai-> origine -6
    ....

  7. #7
    Membre chevronné Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Par défaut
    Mais si il veut aller plus loin que 2007 il ne faut pas oublier de tenir comptes des annees bisextiles.

  8. #8
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    xxiemeciel
    Mais si il veut aller plus loin que 2007 il ne faut pas oublier de tenir comptes des annees bisextiles.
    C'est pourquoi, je donne un exemple pour 2008 !

  9. #9
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Plutôt que de réinventer la roue, pour tout ce qui est calcul de date, boost::date_time a pas mal de fonctionnlités. Par exemple, pour ce que tu veux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    first_day_of_the_week_in_month fdm(Monday,Jan);
    date d = fdm.get_date(2002);
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  10. #10
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    JolyLoic:
    Plutôt que de réinventer la roue, ....
    Certes !
    Mais il est souvent plus instructif d'essayer de concevoir sa roue (même un peu bancale) que l'acheter toute faite en grande surface. On peut préférer essayer de résoudre une "énigme algorithmique" (terme un peu excessif dans ce cas, j'en conviens volontiers) ou consulter un catalogue de pret à porter. Question de goût! Mais c'est vrai que cette attitude peut être moins productive dans bien des cas.
    J'aime bien réinventer la roue parce qu'à trop compter sur le pouvoir créatif des autres , on finit par manquer d'imagination.

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 10
    Par défaut
    Merci à vou pour toute ces réponse
    Mon probleme est réglé

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

Discussions similaires

  1. Exécution hebdomadaire d'un .bat sauf le premier Lundi du mois
    Par zainab2000 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 10/03/2011, 20h33
  2. premier lundi du mois
    Par mickisa dans le forum Excel
    Réponses: 3
    Dernier message: 16/06/2010, 12h58
  3. Réponses: 12
    Dernier message: 29/10/2008, 12h45
  4. Premier Lundi du mois
    Par PrinceMaster77 dans le forum ASP
    Réponses: 1
    Dernier message: 26/03/2008, 17h48
  5. Executer une action premier lundi chaque mois
    Par Pierren dans le forum Access
    Réponses: 1
    Dernier message: 15/01/2007, 20h07

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