Bonjour,
Comment obtenir le premier jour de chaque semaine d'un mois donné .(asp.net)
Merci d'avance.
Version imprimable
Bonjour,
Comment obtenir le premier jour de chaque semaine d'un mois donné .(asp.net)
Merci d'avance.
Bnj,
J'ai vu un blog qui parle de ça :
http://joelabrahamsson.com/entry/get...k-with-c-sharp.
Désolé je l'ai pas vu de prés.
Bonne courage.
Regarde les commentaires aussi ;)
Le premier jour de chaque semaine tombe un lundi :D
En es-tu si sûr ? ;)
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 void Main() { PrintFirstDayOfWeek("fr-FR"); PrintFirstDayOfWeek("en-US"); PrintFirstDayOfWeek("ar-SA"); } void PrintFirstDayOfWeek(string cultureName) { CultureInfo culture = CultureInfo.GetCultureInfo(cultureName); Console.WriteLine("{0}: {1}", culture.DisplayName, culture.DateTimeFormat.FirstDayOfWeek); }
Ce code affiche le résultat suivant :
Eh oui, le premier jour de la semaine n'est pas le même selon les pays...Citation:
French (France): Monday
English (United States): Sunday
Arabic (Saudi Arabia): Saturday
Question intéressante, en tous cas :ccool:
J'ai un peu cherché et je suis arrivé à ce code pour trouver les premiers jours de la semaine d'un mois donné :
Code:
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 public IEnumerable<DateTime> FirstDayOfEachWeek(int year, int month) { return FirstDayOfEachWeek(year, month, CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek); } public IEnumerable<DateTime> FirstDayOfEachWeek(int year, int month, DayOfWeek firstDayOfWeek) { // On se place sur le premier jour du mois DateTime day = new DateTime(year, month, 1); // Si ce n'est pas le premier jour de la semaine, // on cherche le début de la prochaine semaine if (day.DayOfWeek != firstDayOfWeek) { int diff = (firstDayOfWeek - day.DayOfWeek + 7) % 7; day = day.AddDays(diff); } // On avance de semaine en semaine tant qu'on n'a pas changé de mois while (day.Month == month) { yield return day; day = day.AddDays(7); } }
La première méthode utilise le premier jour de la semaine de la culture courante, la seconde permet de le spécifier explicitement
C'était évidemment une petite boutade! ;)
Code:
1
2
3
4
5
6
7
8
9
10 DateTime FirstDayOfMonth(int year, int month, DayOfWeek day) { return Enumerable.Range(1,7).Select(i=>new DateTime(year,month,i)).First(d=>d.DayOfWeek ==day); } IEnumerable<DateTime> DaysOfMonth(int year, int month, DayOfWeek day) { var firstDay = FirstDayOfMonth(year,month,day); return Enumerable.Range(0,5).Select(i=>firstDay.AddDays(7*i)).TakeWhile(d=>d.Month==month && d.Year==year); }
Jolie la solution Linq :ccool:
Mais je pense que la mienne est (un peu) plus rapide ;)
Je te l'accorde :D (C'est juste que je suis dans ma période Comment mettre du LINQ partout pour voir!)
http://www.thesmilies.com/smilie-gen...olu%5E_%5E.gif