PREMIER JOUR D'UNE SEMAINE

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 - 2 juin 2005 à 17:15
 Utilisateur anonyme - 9 oct. 2009 à 21:48
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/31775-premier-jour-d-une-semaine

Utilisateur anonyme
9 oct. 2009 à 21:48
pour eviter la boucle:

using System.Globalization;

private DateTime getPremierJourSemaine(int numeroSemaine, int annee)
{
Calendar cal = CultureInfo.InvariantCulture.Calendar;

//initialise le premier janvier de l'année
DateTime date = new DateTime(annee, 1, 1);

//Cherche le lundi suivant
int Jour = Convert.ToInt32(date.DayOfWeek);
date = date.AddDays(8 - Jour);

//extrait le numéro de semaine du lundi
int Semaine = cal.GetWeekOfYear(date, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);

//ajoute le nombre de semaine
Semaine = 7 * (numeroSemaine - Semaine);
date = date.AddDays(Semaine);

return date;
}
flashkel Messages postés 5 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 23 novembre 2007
9 juil. 2007 à 14:48
doh!
mettre

date=date.AddDay(7);

plutot que

date=date.AddDay(1);
flashkel Messages postés 5 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 23 novembre 2007
9 juil. 2007 à 14:44
Avec une seule boucle pour info avec la classe Calendar.

private DateTime getPremierJourSemaine(int numeroSemaine,int annee)
{
Calendar cal = CultureInfo.InvariantCulture.Calendar;
DateTime date=new DateTime(annee,1,1);
while(numeroSemaine!=cal.GetWeekOfYear(date,CalendarWeekRule.FirstFourDayWeek,DayOfWeek.Monday))
date=date.AddDays(1);
return date;
}
daivil Messages postés 87 Date d'inscription mardi 25 juin 2002 Statut Membre Dernière intervention 4 juin 2005
4 juin 2005 à 09:23
J'ai bien essayé de faire plus simple mais la classe DateTime ne semble pas gérer les semaines :)
JulSoft Messages postés 354 Date d'inscription dimanche 3 juin 2001 Statut Membre Dernière intervention 11 mars 2013
2 juin 2005 à 19:02
je pense aussi qu'il y a plus simple
on doit pouvoir le faire en conaissant le jour du 1er janvier de l'année en question et, sauf erreur de ma part, il existe une fonction pour ça (je confond peut être avec le PHP où la fonction existe bel et bien)
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
2 juin 2005 à 17:15
la démarche est bonne... mais je pense qu'il a plus simple
Rejoignez-nous