begin process at 2012 02 10 19:26:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Retrouver le numero de semaine à partir d'une date


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Retrouver le numero de semaine à partir d'une date

jeudi 8 décembre 2005 à 21:03:36 | Retrouver le numero de semaine à partir d'une date

sebclick

Bonjour,

Je recherche une fonction qui permet de retrouver le numéro de semaine à partir d'une date.

Je passe en paramètre 08 12 2005 et ça me retourne 49 par exemple.

Auriez vous quelques indices ? Merci d'avance.

jeudi 8 décembre 2005 à 21:22:18 | Re : Retrouver le numero de semaine à partir d'une date

dark_naruto25

tu calculs le nombre de jours depuis le 01/01/N et tu divise par 7, ça devrais suffir je pense
jeudi 8 décembre 2005 à 21:33:43 | Re : Retrouver le numero de semaine à partir d'une date

dark_naruto25

admettons la date :
Jours/Mois/Annee (int Jour,Mois,Annee;)

tu fais une boucle avec :

int nbMois[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int nbJour=0;
for(i=1; i<Mois; i++)
{
   if(i==2) nbJour+=nbMois[i-1] + Bissectile(Annee) // Bissectile renvoi 1 si Annee est bissectile
   else nbJour+=nbMois[i-1];
}

ensuite tu ajoutes le Jour :
nbJour+=Jours;

vendredi 9 décembre 2005 à 11:21:03 | Re : Retrouver le numero de semaine à partir d'une date

sebclick

Bonjour,

Merci dark_naruto25 d'avoir répondu.
Par contre je serais plus pour une solution moins artisanale. Car si le premier jour de l'année est un jeudi par exemple, avec ta solution, je ne suis pas sur que cela fonctionne.

La nuit portant conseil, je me suis dit que je pouvais utilisé la fonction strftime.

size_t strftime (char *s, size_t max, const char *format, const struct tm *tm);

Par contre, j'ai fait quelques tests, et je n'arrive pas à l'utiliser correctement.
J'initialise ma structure tm avec la date du jour et ça me retourne 0 dans ma chaine.

Voici le code :

char NumSemaine[10];
struct tm *date;
time_t ti;
date->tm_year = 105;
date->tm_mon = 11;
date->tm_mday = 9;
strftime(NumSemaine,5,"%V",date)

Voyez vous une erreur dans ce bout de code ?

Merci d'avance !

vendredi 9 décembre 2005 à 11:42:23 | Re : Retrouver le numero de semaine à partir d'une date

sebclick

En approfondisant mes recherches, j'ai essayer ceci :

char NumSemaine[10];

struct tm *date;
time_t ti;

date->tm_year = 106;
date->tm_mon = 0;
date->tm_mday = 02;
date->tm_hour = 0;
date->tm_min = 0;
date->tm_sec = 0;

ti = mktime(date);
date=localtime(&ti);

strftime(NumSemaine,5,"%V",date);

Et ça a l'air de fonctionner.
@ pluch   

vendredi 9 décembre 2005 à 19:42:02 | Re : Retrouver le numero de semaine à partir d'une date
mardi 15 juin 2010 à 18:13:44 | Re : Retrouver le numero de semaine à partir d'une date

croati




slt tout les programmeur

Option Explicit
Private Function JJ(Dates As Date)
Dim y As Long, m As Long, DDdd As Double
Dim YYYY As Long, MM As Long
Dim a As Double, b As Double
YYYY = Year(Dates)
MM = Month(Dates)
DDdd = Day(Dates) + Hour(Dates) / 24 + Minute(Dates) / 24 / 60 + Second(Dates) / 24 / 60 / 60
If MM <= 2 Then y = YYYY - 1: m = MM + 12 Else y = YYYY: m = MM
If Dates >= 1582.1015 Then
a = y \ 100
b = 2 - a + a \ 4
End If
If y = Abs(y) Then
JJ = Int(365.25 * y) + Int(30.6001 * (m + 1)) + DDdd + 1720994.5 + b
Else
JJ = Int(365.25 * y) + Int(30.6001 * (m + 1)) + DDdd + 1720994.5
End If
End Function
Private Function JourSemaine(Dat As Date) As Long
Dim a As Double
a = JJ(Dat) + 1.5
a = a Mod 7
JourSemaine = a
End Function
Private Function JourAnnée(Dat As Date) As Integer
Dim I As Integer
I = Year(Dat)
If (I Mod 400 = 0) Or ((I Mod 100 <> 0) And (I Mod 4 = 0)) Then
JourAnnée = Int((275 * Month(Dat)) / 9) - Int((Month(Dat) + 9) / 12) + Day(Dat) - 30
Else
JourAnnée = Int((275 * Month(Dat)) / 9) - (2 * Int((Month(Dat) + 9) / 12)) + Day(Dat) - 30
End If
End Function
Public Function NumeroSemaine(Dates As Date) As Byte
Dim NbJour1ereSemaine As Byte, JourJulienDates As Double, JourJulien1Janvier
Dim JourSemaine1Janvier As Byte, JourAnneeDates As Integer
JourJulienDates = JJ(Dates)
JourJulien1Janvier = JJ(DateSerial(Year(Dates), 1, 1))
JourSemaine1Janvier = JourSemaine(DateSerial(Year(Dates), 1, 1) + TimeSerial(0, 0, 0))
If JourSemaine1Janvier = 0 Then
NbJour1ereSemaine = 1
Else
NbJour1ereSemaine = -(JourSemaine1Janvier - 8)
End If
NumeroSemaine = Int((JourAnnée(Dates) - 1 - NbJour1ereSemaine) / 7) + 2
If NumeroSemaine > 52 Then NumeroSemaine = NumeroSemaine - 52
End Function


Cette discussion est classée dans : date, partir, numero, retrouver, semaine


Répondre à ce message

Sujets en rapport avec ce message

Connaitre le numéro de semaine pour une date donnée [ par diouck ] SalutJe sais qu'en VB il est possible de connaitre le numéro de semaine d'une date donnée avec la fonction suivante :"NumWeek.Text = DatePart("ww", Da Mise à jour de paramètre [ par justine684 ] Bonjour! Alors j'ai un problème que je ne sais résoudre. Peu être que quelqu'un pourrait m'aider. Mon but est de référencer les semaines dans une anné [BATCH]Retrouver la dernière date en batch [ par bretdu55 ] Bonjour à tous, j'ai crée un fichier save.bat contenant un script pour effectuer une sauvegarde avec robocopy. Il sauvegarde le dossier data dans un d Calcul Date a partir d'un nombre de jours [ par Trinita16 ] Je cherche si il existe une fonction simple pour convertir un nombre de jour en une date. Sachant que la date départ peut varier....Merci d'avance.... Calcul date à partir d'un nombre de jours [ par Trinita16 ] Bonjour,1. Une date fixe de debut de comptage de jours2. Un nombre de jours depuis la date en 13. Je veux le nombre de jour en une date.Voila mon prob charger une image bmp à partir du disque dur et apercu dans fenetre [ par djmix73 ] En fait, jai windows xp, je fais un projet informatique c'est une gestion de film, je voudrai charger une image bmp à partir du disque dur et avoir l' Recuperer date de derniere modif d'un fichier [ par starkrous ] bonjour pour mon stage on m'a demandé de creer une application qui recuperer les dates de derniere modif d'un fichier pour les comparer a la date actu USER à partir d'un code C [ par iljamila ] Salut !!Je travaille sous linux et j'ai besoin d'écrire un code en C. Dans ce code je dois déterminer le nom de l'utilisateur courant pour pouvoir cha Comparer date systeme avec date d'ecriture d'un fichier...HELP [ par starkrous ] comment je pourrais faire pour comparer les dates de derniere ecriture de fichier (last write time) avec la date systeme??j'vous montre deja comment j


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,326 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales