Bonjour
Je voudrais obtenir la date du premier jour d'une semaine
par exemple la date du lundi de la semaine 23 de l'année 2012
Pouvez-vous m'indiquer comment faire
Merci pour vos réponses
Bonjour
Je voudrais obtenir la date du premier jour d'une semaine
par exemple la date du lundi de la semaine 23 de l'année 2012
Pouvez-vous m'indiquer comment faire
Merci pour vos réponses
Bonjour, moi je procéderais de la façon suivante : Tu vas chercher la date du premier jour de l'année. Tu additionne ton nombre de semaines. Ensuite tu ajuste selon le jour de la semaine que tu veux. Si c'est le lundi que tu veux avoir, ça devrait ressembler à quelque chose du genre :
J'espère que ça t'aideras!
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 private DateTime GetFirstDayOfWeekNb(int weekNb) { DateTime date = new DateTime(DateTime.Now.Year, 1, 1); date = date.AddDays(7 * weekNb); switch (date.DayOfWeek) { case DayOfWeek.Sunday : date = date.AddDays(1); break; //Fait la même chose avec les autres jours de la semaine default : break; } return date; }
C'est nettement moins facile que ça en a l'air... mais tu as de la chance, c'est implémenté dans la dernière version de la librairie Dvp.NET
Ajoute une référence à Dvp.NET dans ton projet (manuellement ou avec Nuget), et importe le namespace Developpez.DotnetL'approche de duffmere est astucieuse, mais en l'état elle ne fonctionne pas... il faudrait faire quelques ajustements. De plus elle ne gère pas le cas général (prise en compte des différentes règles pour le calcul du numéro de la semaine, du premier jour de la semaine vu que ce n'est pas le lundi dans tous les pays, etc)
Code : Sélectionner tout - Visualiser dans une fenêtre à part DateTime monday = DateExtensions.GetStartOfWeek(2012, 23); // 28/05/2012
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Cela ressemble au code á Duffmere mais c'est composé maison
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 public static DateTime GetMonday(DateTime dtNow) { if (dtNow.DayOfWeek == DayOfWeek.Saturday || dtNow.DayOfWeek == DayOfWeek.Sunday) { do { dtNow = dtNow.AddDays(-1); } while (dtNow.DayOfWeek != DayOfWeek.Monday); } else { if (dtNow.DayOfWeek != DayOfWeek.Monday) { do { dtNow = dtNow.AddDays(-1); } while (dtNow.DayOfWeek != DayOfWeek.Monday); } } return dtNow; }
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Ah si, si je me trompe pas en combinant les deux methodesEuh, c'est cool, mais ça répond pas du tout à la question
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 private DateTime GetFirstDayOfWeekNb(int weekNb) { DateTime date = new DateTime(DateTime.Now.Year, 1, 1); date = date.AddDays(7 * weekNb); return GetMonday(date); }
Je voudrais prendre la solution de TomLev mais j'ai Visual Studio 2005 c'est possible quand meme
Car si je veux faire cela :
NuGet s'installe sous forme d'une extension de Visual Studio. Choisissez "Gestionnaire d'extensions" dans le menu Outils, allez dans la catégorie "Galerie en ligne", et tapez "nuget" dans le champ de recherche en haut à droite. Sélectionnez "NuGet Package Manager", et cliquez sur "Télécharger" :
Je n'ai pas dans outils, de gestionnaire d'extensions
Non, il faut au moins VS2008 (.NET 3.5) car la librairie utilise beaucoup Linq
Cela dit tu peux toujours reprendre le code ici :
http://projets.developpez.com/projec...eExtensions.cs
Pour Nuget il faut avoir VS2010
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Ma solution devrait fonctionner aussi
Pas dans le cas général ; ça donne les bons résultats pour la règle de la "première semaine complète", en considérant le lundi comme premier jour de la semaine. Or la règle utilisée habituellement est celle de la "première semaine de 4 jours", et la semaine ne commence pas partout le lundi...
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager