Bonjour tout le monde
Est ce que quelqu'un connait une fonction qui retourne la date d'un numéro de semaine ?
J'ai recherché dans la FAQ et dans le forum, je n'ai rien trouvé
Merci
A+
Bonjour tout le monde
Est ce que quelqu'un connait une fonction qui retourne la date d'un numéro de semaine ?
J'ai recherché dans la FAQ et dans le forum, je n'ai rien trouvé
Merci
A+
Bonjour,
As-tu été yeuter là aussi ?
http://delphi.developpez.com/faq/?pa...#weekoftheyear
@+
Salut,
J'en viens.
Mais moi c'est en fonction d'un numéro de semaine, que je souhaieterais obtenir la date du premier jour de la semaine
Par exemple : pour la semaine n°1 ==> 1er janvier 2006
A+
Essaie la bibliothèque O_Fonctions qui contient plein de fonctions sur les dates...
A rechercher sur
J'ai déja regardé dans O_FONCTION, je n'ai rine trouvé.
Par contre j'ai trouvé une fonction en PHP, je vais m'en inspirer.
je reviendrais pour vous rendre compte.
A+
Salut CharleLéo
Etant donné que la première semaine calendaire de l'année est celle qui comprend le premier jeudi de l'année (la première semaine de l'année qui comprend au moins quatre jours), il suffit d'écrire une fonction qui commence par déterminer la date de ce 1er jeudi...
Reste à ajouter autant de fois 7 jours que le n° de la semaine (moins un) que tu cherches à dater et tu obtiendras la date du jeudi de la semaine en question
ENFANTIN !
J'ai testé, ça marche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function datesemaine(semaine:byte;annee:integer):TDate; var c:byte; begin for c:=1 to 7 do if dayoftheweek(encodedate(annee,1,c))=4 then result:=encodedate(annee,1,c)+((semaine-1)*7); end;
Bonne prog
Dans l'unité dateutils (fournit avec delphi) tu as tout ce qu'il te faut pour la gestion des dates
Exemple :
UneDate := EncodeDateWeek (UneAnnee, une Semaine,LeJourDelaSemaine) : Renvoie un TDateTime qui représente un jour d'une semaine d'une année spécifiés
En Delphi 4 aussi ?Envoyé par Malatar
Envoyé par CharleLéoN'est-ce pas ça que tu cherches ?Envoyé par O_fonctions v2.09
J'ai récemment eu besoin de ce type de fonctions, voici celles que je te propose, les explications suivent :
Dans mes fonctions j'ai considéré 3 systèmes de notation de date :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 Uses DateUtils; ... function DMY_to_Date(ADay,AMonth,AYear:Word):TDate; begin result:=EncodeDate(AYear,AMonth,ADay); end; function DowWY_to_Date(ADayOfWeek,AWeek,AYear:Word):TDate; begin result:=EncodeDateWeek(AYear,AWeek,ADayOfWeek); end; procedure Date_to_DMY(ADate:TDate;var ADay,AMonth,AYear:word); begin DecodeDate(ADate,AYear,AMonth,ADay); end; procedure Date_to_DowWY(ADate:TDate;var ADayOfWeek,AWeek,AYear:word); begin DecodeDateWeek(ADate,AYear,AWeek,ADayOfWeek); end; procedure DMY_to_DowWY(ADay,AMonth,AYear_DMY:Word;var ADayOfWeek,AWeek,AYear_DowWY:word); var ADate:TDate; begin ADate:=DMY_to_Date(ADay,AMonth,AYear_DMY); Date_to_DowWY(ADate,ADayOfWeek,AWeek,AYear_DowWY); end; procedure DowWY_to_DMY(ADayOfWeek,AWeek,AYear_DowWY:Word;var ADay,AMonth,AYear_DMY:word); var ADate:TDate; begin ADate:=DowWY_to_Date(ADayOfWeek,AWeek,AYear_DowWY); Date_to_DMY(ADate,ADay,AMonth,AYear_DMY); end;
- Le système Date qui correspond au type TDate de Delphi
- Le système DMY qui correspond au système Day/Month/Year classique (n° Jour du mois/mois/semaine séparés)
- Le sytème DowWY qui correspond au système : n°de jour dans la semaine/n° de semaine/année.
Pour obtenir le premier jour de la semaine (Lundi) n°25 de 2006 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 var ADate:TDate; begin //En date Delphi ADate := DowWY_to_Date(1,25,2006); //en Jour/mois/semaine end;
Attention, l'année dans le système DowWY, n'est pas forcément la même que dans le système DMY !
par exemple, le Dimanche 1er Janvier 2005, se traduit tout naturellement en 1/1/2005 dans le système DMY classique, mais en système DowWY, c'est le dernier jour, de la dernière semaine de 2004 (autrement dit, le 7/53/2004)!
De même, le 1/1/2005 (système DowWY : Lundi, semaine 1 de 2005) correspond au 2/1/2005 (DMY : Lundi 2 Janvier 2005).
Bref t'emmèle pas les pinceaux
Donc voici passés en revue les paramètres attendus par les fonctions :
* Dans le système Delphi :
- ADate : un TDate.
* Dans le système DMY :
- ADay: Le n° de jour dans le mois (de 1 à 31 en général)
- AMonth : Le n° de mois (de 1 à 12)
- AYear_DMY: L'annnée calendaire normale
* Dans le système DowWY :
- ADayOfWeek : Le n° de jour dans la Semaine : Lundi=1, Mardi=2, etc
- AWeek : le numéro de semaine (de 1 à 53)
- AYear_DowWY : L'année dans ce système (des fois differente de l'année calendaire)
Bref, j'espère que tout ça te sera utile
Bonjour à tout le monde et merci pour vos réponse.
effectivement c'est cela que je recherche, désolé je ne l'avais pas vuEnvoyé par qi130
Merci tout le monde
A+
Partager