如果提供了日期(月-日-年),是否可以使用SYSTEMTIME确定星期几,或者这种结构只是单向的?
如果SYSTEMTIME不能做到这一点(使用Win32),最轻量级的方法是什么?
发布于 2010-06-11 03:33:55
根据msdn,在将SYSTEMTIME转换为FILETIME时会忽略wDayOfWeek成员。当转换回来时,它会被填入。
SYSTEMTIME t = { 2010, 6, -1 /*ignored*/, 11 };
FILETIME ft;
HRESULT hrto = SystemTimeToFileTime( &t, &ft );
HRESULT hrback = FileTimeToSystemTime( &ft, &t );
WORD dayofweek = t.wDayOfWeek;发布于 2010-06-11 03:40:11
另一种可能更具平台独立性的方法是使用localtime或gmtime。
例如,打印当前星期几:
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 );发布于 2010-06-11 03:34:08
使用SystemTimeToFileTime将SYSTEMTIME转换为文件。然后使用FileTimeToSystemTimeto将其转换为带有星期几的SYSTEMTIME。
https://stackoverflow.com/questions/3017745
复制相似问题