Salut,
en fait tout est dans le titre... Je cherche le 268ème jour de l'année 1998, par exemple et je voudrait récupérer ce jour sous la forme Lundi 23 mai 1998... Vous voyez ???
Merci pour votre aide...
Version imprimable
Salut,
en fait tout est dans le titre... Je cherche le 268ème jour de l'année 1998, par exemple et je voudrait récupérer ce jour sous la forme Lundi 23 mai 1998... Vous voyez ???
Merci pour votre aide...
salut,
voici 1 code qui affiche le 268 eme jour de l'annee 1998 avec le format que tu demande :
A+.Code:
1
2
3 TDateTime d=TDateTime(1998,1,1); d=d.operator +(268); ShowMessage(FormatDateTime("dddd dd mmmm yyyy ",d));
Salut,
Ce code te donne la date du NbJour eme jour de l'annee Annee (>1900) et quel jour de la semaine c'est :
@+Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 int NbJours; int Annee; TDate Date; unsigned short Year, Month, Day; int Jour; if((double)(Annee%4)>0) // pas année bisextile Date=(int)(Annee-1900)*365+NbJours+(int)((Annee-1900)/4)+1; else //Année bisextile Date=(int)(Annee-1900)*365+NbJours+(int)((Annee-1900)/4); Date.DecodeDate(&Year,&Month,&Day); //Donne jour,mois,annee (23 05 2001) Jour=Date.DayOfWeek(); // Jour de la semaine (1=dim,7=sam)
Merci à tous les deux,
J'ai essayé les deux codes et ils marchent à la perfection...
Merci encore...
Salut,
en fait, j'aimerais faire l'inverse.
Comment je peux trouver le numéro du jour de l'année après avoir crée un objet TDate du jour actuel ?
Merki.
Ilsuffit de créer un TDateTime du 1er janvier de l'année et de faire la différence :
Le 1er janvier étant considéré commele premier jour de l'année.Code:
1
2
3
4
5 TDateTime dtActuel = Now(); Word an, mois, jour; DecodeDate(dtActuel , an, mois, jour); TDateTime dtDebut (an, mois, jour); int dif = int(dtActuel - dtDebut)+ 1;
:!: Attention, ce code ne marchera pas tout le temps. Il ne tient pas compte du fait que les fins de siècle ne sont bisextiles que tous les 400 ansCitation:
Envoyé par tomtom7
Citation:
:!: Attention, ce code ne marchera pas tout le temps. Il ne tient pas compte du fait que les fins de siècle ne sont bisextiles que tous les 400 ans
oui bien vu !!!
apparement les résultats sont faux à partir de l'année 2101..le code ne fonctionne qu'entre 1901 et 2100...
il vaut mieux utiliser la fonction "DayOfTheWeek" proposée dans la FAQ :
http://c.developpez.com/faq/bcb/?pag...mainedansannee
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #include "DateUtils.hpp" // NumDayInYear : numero du jour désirée ex : le 23 eme jour int GetNumDayOfTheWeek(int NumDayInYear,int Year) { //<1900 non géré if(Year<1900) return -1 ; TDateTime dt = EncodeDateTime(1900,1,1,0,0,0,0); int nb_years = Year - 1900; dt= IncYear(dt,nb_years); dt =IncDay(dt,NumDayInYear-1 ); return DayOfTheWeek(dt); }