est-il possible de déterminer le jour de la semaine, à l'aide de SystemTime, si une date (jour-jour-année) est fournie ou est cette structure à sens unique? P>
Quelle est la manière la plus légère d'accomplir ce que je demande si SystemTime ne peut pas le faire (en utilisant Win32)? P>
3 Réponses :
Selon le MSDN , Le membre wdayofweek code> est ignoré lors de la conversion
systemtime code> vers
filétime code>. Lors de la conversion, il est rempli.
SYSTEMTIME t = { 2010, 6, -1 /*ignored*/, 11 };
FILETIME ft;
HRESULT hrto = SystemTimeToFileTime( &t, &ft );
HRESULT hrback = FileTimeToSystemTime( &ft, &t );
WORD dayofweek = t.wDayOfWeek;
Utilisez SystemTIMetOfileTime pour convertir le temps système en une filetime. Ensuite, utilisez la filétinetosystemtime pour le convertir en une durée de la semaine. P>
Une autre façon de le faire qui pourrait être un peu plus indépendant de la plate-forme serait d'utiliser localTime ou gmtime .
Par exemple, print Current Jour de la semaine: P>
struct tm *timeval; time_t tt; tt = time( NULL ); timeval = localtime( &tt ); // print zero based day of week printf( "day of week = %d\n", timeval->tm_wday );