Comment puis-je déterminer quel jour de la semaine commence la localisation actuelle? J'ai besoin de cela en C, vraisemblablement via l'en-tête . Merci.
Réponse
Trop de publicités?Les paramètres régionaux ne contiennent pas cette information. C'est parce que la signification de "premier jour de la semaine" dépend de l'application (de chaque application), pas de l'ordinateur.
Sur mon lieu de travail, certaines applications considèrent que le lundi est le premier jour de la semaine, et d'autres considèrent que le dimanche est le premier jour de la semaine. Les calendriers muraux ici utilisent tous le dimanche comme premier jour; les calendriers de production utilisent généralement le lundi.
Sous Windows, utilisez GetLocaleInfo(), mais le paramètre régional peut être modifié en cours d'exécution. Il peut être défini via l'API Windows. GetLocaleInfoEx() a une documentation plus détaillée. Il semble que SetLocaleInfo() peut modifier le premier jour de la semaine indépendamment des autres paramètres régionaux.
Sous Linux, il existe des dispositions pour identifier le premier jour de la semaine dans l'utilitaire locale
. (man 5 locale
, ou documentation de l'outil de localisation en ligne. Recherchez "LC_TIME".) Il est documenté comme étant conforme à POSIX.2, ISO/IEC 14652.
$ locale day
Sunday;Monday;Tuesday;Wednesday;Thursday;Friday;Saturday
Le premier jour de la semaine dans mes paramètres régionaux est le dimanche.
Je n'ai pas encore trouvé d'appel système ou d'appel de bibliothèque pour cela. Je n'ai pas le code source à portée de main.