29 mars 2024
C#

C# Premier jour de la semaine

Pour mon composant Blazor Calendar, je suis tombé sur un petit problème pour déterminer le premier jour de la semaine. C’est alors pas nouveau et le web regorge de solutions qui au final.. et bien ne se basent que sur le samedi ou dimanche.. Sauf qu’il y a des pays comme l’Afghanistan, l’Iran et la Somalie où le premier jour de la semaine est le samedi .

Samedi ? Dimanche ? Lundi ? Vendredi !

En fait c’est pas si simple que ça car il faut noter que cela peut varier selon la culture et les traditions de chaque région. A moins d’aller dans chaque pays faire une enquête, le web me dit tout et son contraire. Si je regarde Wikipedia, on retrouve cette carte :

First Day of Week World Map

Et visiblement aux Maldives c’est un Vendredi

source : https://commons.wikimedia.org/wiki/File_talk:First_Day_of_Week_World_Map.svg

ChatGPT, Stack Overflow, à l’aide !

Bon, y’a pas de bonnes réponses qui me conviennent. Et le code suivant utisant simplement DateTime.FirstDayOfWeek, finalement me retourne le Dimanche.

C#

Mon besoin est donc de lui donnée le jour du mois et qu’il me retourne le numéro du jour premier de la semaine. Auparavant j’aurai préciser dans mon code la Culture.

Je pars alors sur les numéros de jours comme DayOfWeek avec 0 pour dimanche, 1 pour lundi ainsi de suite.

C#

Et là tout va bien !

Tout va bien ? Bon ok, je n’ai pas gérer les Maldives. Si j’ai un maldivien comme utilisateur, j’ai donc une amélioration à faire

Laisser un commentaire