Fonction cherche le jour debut d'une semaine

Fermé
bari - 7 août 2003 à 18:20
 webdusud66 - 21 juin 2011 à 15:20
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
A voir également:

11 réponses

Utilisateur anonyme
8 août 2003 à 13:24
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
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
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
Marmot Messages postés 579 Date d'inscription lundi 14 janvier 2002 Statut Membre Dernière intervention 17 août 2006 69
7 août 2003 à 18:47
Heu oui, selon ton langage il existe des librairies toutes faites. C'est l'algo qui t'intéresse ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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
Merci beaucoup Pierre, c'est exactement ça !
0
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
zaphod29 Messages postés 3 Date d'inscription dimanche 29 mars 2009 Statut Membre Dernière intervention 29 mars 2009 1
29 mars 2009 à 17:43
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
bari ? c'est un nom qui m'est familié (BANQUE d'AL?????) ?

time is not money, time is life
-2
Utilisateur anonyme
8 août 2003 à 13:37
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