Page 1 sur 1
Trouver debut et fin de semaine par rapport à date(W)
Posté : 07 juin 2005, 14:09
par manuscle
Bonjour!
Comment je peuxfaire pour trouver la date de debut et de fin de semaine en ayant juste le numero de semaine dans l'année?
Par exemple:
semaine 23 -> du lundi 6 juin au vendredi 10 juin
Merci pour votre aide
Manuscle
Posté : 07 juin 2005, 14:27
par mere-teresa
Un matheux dans la salle ?
La difficulté des calculs portant sur des dates ou des horaires (et parfois les deux) est lié à la codification même de la mesure du temps ainsi qu'au fait que le temps est une entropie (disons le, même une "isentroprie"), c'est à dire qu'il s'écoule de manière uniforme (iso) et dans un seul sens irréversible (vers le futur).
La mesure du temps n'obéit pas à des règles conventionnelles, comme le comptage décimal ou l'origine zéro. En effet :
* Les années comptent tantôt 365 tantôt 366 jours en fait 365 jours 5 heures 48 min. 45,97 sec...
* Les mois de 29 à 31 jours
* Il n'y a pas d'année 0, mais il y a des années négatives (avant JC !)
* Les siècles et millénaires commencent par une année unitaire (1, 1901, 2001...)
* Les jours comptent 24 heures et il y a une heure zéro !
* Les heures comptent 60 minutes et les minutes 60 secondes,
* Il n'y a pas recouvrement éxact des semaines par rapport aux mois...
* Les heures changent par rapport aux différents fuseaux horaires de la planète !
* certaines opérations sur les dates sont impossible (par exemples rajouter exactement 3 mois à une date)...
* le 10 octobre 1582 n'a jamais existé !!!
Tous ces éléments font que les calculs, notamment de comptage du temps obéissent à des algorithmes complexes.
De ce fait, la norme SQL 2, propose une solution générale assez intelligente. Mais elle est rarement implantée. Nous étudierons donc la norme, ce que propose les éditeurs et finalement une solution basée sur des relations entre tables avec une table principale stockant toutes les dates.
NOTA : il est dommage que le calendrier mis en place lors de la révolution française n'ai pas subsisté. L'année y étais divisé en 12 mois de 30 jours. Chaque semaine faisait 10 jours. Les 5 ou 6 jours restant étaient placés à la fin de l'année et constituait des vancances... En quelques sortes, les révolutionnaires étaient en avance sur les congés payés de 1936 et sur les 35 heures de la mère Aubry !
ATTENTION : La numérotation des semaines est standardisée depuis 1976 par l'ISO, avec les règles suivantes :
* Le lundi est considéré comme le premier jour de la semaine.
* Les semaines d'une même année sont numérotées de 01 à 52 (parfois 53).
* La semaine qui porte le numéro 01 est celle qui contient le premier jeudi de janvier.
* Il peut exister une semaine n°53 (années communes finissant un jeudi, bissextiles finissant un jeudi ou un vendredi).
La numérotation des semaines aux USA, comme la numérotation des jours diffère totalement de cette norme !
source :
http://sqlpro.developpez.com/cours/gestiontemps/
Posté : 07 juin 2005, 15:01
par manuscle
L'article est sympa mais ça concerne SQL, pour ma part je dois le faire en php....
J'affiche un select qui propose le numero de semaine et à coté je veux afficher l'interval de date qu'elle englobe...
Bon vais encore faire fumer mon cerveau....

Posté : 07 juin 2005, 15:08
par mere-teresa
Je suis un peu handicapée avec le calcul mais en gros : en divisant et multipliant, entre le nb de jour d'une année et le nb de semaine, tu devrais situer la semaine dans le mois.
Et le mois, PHP connaît.
Posté : 07 juin 2005, 15:08
par manuscle
J'ai trouvé un script ici:
http://www.nexen.net/scripts/details.php?scripts=1031
qui répond à ma question!
Posté : 07 juin 2005, 15:09
par Cyrano
[Résolu]

Posté : 07 juin 2005, 15:09
par manuscle
oui deux minutes!