Fonction cherche le jour debut d'une semaine

bari -  
 webdusud66 -
salut tt monde,
dans chaque année on 52 semaine
est ce que a partir le numéro de la semaine je peux savoir le jour de début et fin prenons on consédirations que le mois féverier parfois ne contient que 28 j au lieu de 29 jours merci d'avance

11 réponses

  1. Utilisateur anonyme
     
    Salut,

    Tu peux programmer l'algo facilement en se basant sur les données suivantes:
    - La plupart des languages stoquent les dates en terme de "nombre de jours écoulés depuis une date de référence"
    ex: en VBA le jour 1 est le 31/12/1899
    - En utlisant une fonction telleque "Weekday", tu peux savoir à quel jour de la semaine celà correspond.
    Donc, si le 1 est un mardi, les jours n° 8, 15,...,701 etc seront aussi des mardis.

    Si par exemple tu veux connaître la date correspondante au lundi de la semaine 32 de 2003:
    1. Tu utilises Weekday(1/1/2003) = premier jour de l'an (semaine 1) dans ce cas ci il s'agit d'un mercredi.
    2. Tu ajoutes 32*7 = 224 jours au 1/1/2003 tu arrives au 13/8/2003 (date du mercredi de la semaine considérée).
    2 Il te reste à elever 3 jours --> 11/8/2003

    Essaye de pondre l'algo toi même. Si tu n'y arrives pas, reviens nous voir. Il serait intérressant que tu nous dises quel language tu utilise.

    Rien n'est plus dangereux qu'une idée quand on a 
    qu'une idée
      :-)
    2
  2. Usch
     
    bonjour,
    j'utilise cette formule
    DATE(C3;1;1)+(C2-IF(WEEKDAY(DATE(C3;1;1);2)>4;0;1))*7-WEEKDAY(DATE(C3;1;1)+(C2-IF(WEEKDAY(DATE(C3;1;1);2)>4;0;1))*7;2)+1

    où C2 la semaine
    C3 l'année

    salutations
    Eugène
    1
  3. Hugo
     
    Et voila =)

    function getLundi() {
    $datetemp = explode("-", Date('Y-m-d'));
    return date("Y-m-d", mktime(0, 0, 0, $datetemp[1], $datetemp[2] - Date('w') + 1, $datetemp[0]));
    }
    1
  4. Marmot Messages postés 580 Statut Membre 69
     
    Heu oui, selon ton langage il existe des librairies toutes faites. C'est l'algo qui t'intéresse ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. omar
     
    Si c l algo qui t inetresse tu devras utiliser un algo qui detecte si l année est bissextile et par consequent si fevrier termine 28 ou 29 c le seul pb de cette algo.

    pr trouver l algo VIVA GOOGLE!

    a+ Omar chenobi
    0
  7. bari
     
    merci pour tous
    mais j'ai d'autres questions est ce que je programmé un algo sous java s'il y un exemple ca sera mieux merci d'avance
    bari
    0
  8. Pierrot
     
    Merci beaucoup Pierre, c'est exactement ça !
    0
  9. webdusud66
     
    Heu, sauf erreur de ma part, en PHP5 la fonction qui donne ce résultat existe !
    voir http://php.net/manual/fr/datetime.setisodate.php

    <?
    $date = new DateTime();
    $date->setISODate(2008, 2);
    echo $date->format('Y-m-d') . "\n";
    ?>

    donne le résultat
    2008-01-07
    0
  10. zaphod29 Messages postés 3 Date d'inscription   Statut Membre 1
     
    Bonjour,

    Dans mon cas j'avais besoin d'avoir en retour le premier jour de la semaine. et ne plus être dépendant de l'année.

    version Française

    =((B18*7)-6)-JOURSEM(DATE(ANNEE(AUJOURDHUI());1;1);2)+DATE(ANNEE(AUJOURDHUI());1;1)

    Version Anglaise

    =((B18*7)-6)-WEEKDAY(DATE(YEAR(TODAY()),1,1),2)+DATE(YEAR(TODAY()),1,1)

    B18 = le numéro de la semaine

    A+

    Pierre
    -1
  11. Profil bloqué
     
    bari ? c'est un nom qui m'est familié (BANQUE d'AL?????) ?

    time is not money, time is life
    -2
  12. Utilisateur anonyme
     
    Aller, voici une version possible d'un algo:

    Lundi = 1,....., Dimanche = 7

    Input semaine, Année

    Fonction dateLundi(Int Semaine, Int Année)
    Joursem = Weekday(1/1/Année)
    dateLundi = (1/1/Année) + (Semaine*7) jours - Joursem - 1
    Return dateLundi
    Fin Fonction

    Rien n'est plus dangereux qu'une idée quand on a 
    qu'une idée
      :-)
    -2