Les Allergies
Alimentaires
Posez votre question Signaler

Fonction cherche le jour debut d'une semaine

bari - Dernière réponse le 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
Lire la suite 

Fonction cherche le jour debut d'une semaine »

11 réponses
Réponse
+1
moins plus
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
  :-)
Ajouter un commentaire
Réponse
+1
moins plus
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
Ajouter un commentaire
Réponse
+1
moins plus
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]));
}
Ajouter un commentaire
Réponse
+0
moins plus
Heu oui, selon ton langage il existe des librairies toutes faites. C'est l'algo qui t'intéresse ?
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
Merci beaucoup Pierre, c'est exactement ça !
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
-1
moins plus
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
Ajouter un commentaire
Réponse
-2
moins plus
bari ? c'est un nom qui m'est familié (BANQUE d'AL?????) ?

time is not money, time is life
Ajouter un commentaire
Réponse
-2
moins plus
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
  :-)
Ajouter un commentaire
Ce document intitulé « fonction cherche le jour debut d'une semaine » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?