#include "StdAfx.h" #include ".\wztime.h" #include #include WZTime::WZTime(void) { } WZTime::~WZTime(void) { } bool WZTime::GetTime(int nType, char* szTime, int size) { switch(nType) { case 1: return GetTimeType1(szTime,size); case 2: return GetTimeType2(szTime,size); case 3: return GetTimeType3(szTime,size); case 4: return GetTimeType4(szTime,size); } return false; } bool WZTime::GetTimeType1(char* szTime, int size) { TCHAR szMonth[10], szDay[10], szHour[10], szMinute[10], szSecond[10]; SYSTEMTIME sysTime; GetLocalTime(&sysTime); WORD wYear = sysTime.wYear; GetTimeFormFromWord(sysTime.wMonth, szMonth); //¿ù GetTimeFormFromWord(sysTime.wDay, szDay); //ÀÏ GetTimeFormFromWord(sysTime.wHour, szHour); GetTimeFormFromWord(sysTime.wMinute, szMinute); GetTimeFormFromWord(sysTime.wSecond, szSecond); _snprintf(szTime, size, "%d%s%s_%s:%s:%s", wYear, szMonth, szDay, szHour, szMinute, szSecond); return true; } bool WZTime::GetTimeType2(char* szTime, int size) { TCHAR szMonth[10], szDay[10]; SYSTEMTIME sysTime; GetLocalTime(&sysTime); GetTimeFormFromWord(sysTime.wMonth, szMonth); //¿ù GetTimeFormFromWord(sysTime.wDay, szDay); //ÀÏ _snprintf(szTime, size, "%d%s%s", sysTime.wYear, szMonth, szDay); return true; } bool WZTime::GetTimeType3(char* szTime, int size) { TCHAR szMonth[10], szDay[10], szHour[10], szMinute[10], szSecond[10], szYear[10]; SYSTEMTIME sysTime; GetLocalTime(&sysTime); //³âµµÀÇ ¸Ç µÚ 2ÀÚ¸®¸¸ »Ì¾Æ³½´Ù. WORD wYear = sysTime.wYear; _snprintf(szYear, 10, "%d", wYear); std::string strYear = szYear; strYear = strYear.substr(2, 2); GetTimeFormFromWord(sysTime.wMonth, szMonth); //¿ù GetTimeFormFromWord(sysTime.wDay, szDay); //ÀÏ GetTimeFormFromWord(sysTime.wHour, szHour); GetTimeFormFromWord(sysTime.wMinute, szMinute); GetTimeFormFromWord(sysTime.wSecond, szSecond); _snprintf(szTime, size, "%s%s%s%s%s%s%d", strYear.c_str(), szMonth, szDay, szHour, szMinute, szSecond, sysTime.wMilliseconds); return true; } //4¹ø Çü½Ä 051021171543 (2005³â 10¿ù 21ÀÏ 17½Ã 15ºÐ 43ÃÊ). ÃÊ´ÜÀ§ bool WZTime::GetTimeType4(char* szTime, int size) { TCHAR szMonth[10], szDay[10], szHour[10], szMinute[10], szSecond[10], szYear[10]; SYSTEMTIME sysTime; GetLocalTime(&sysTime); //³âµµÀÇ ¸Ç µÚ 2ÀÚ¸®¸¸ »Ì¾Æ³½´Ù. WORD wYear = sysTime.wYear; _snprintf(szYear, 10, "%d", wYear); std::string strYear = szYear; strYear = strYear.substr(2, 2); GetTimeFormFromWord(sysTime.wMonth, szMonth); //¿ù GetTimeFormFromWord(sysTime.wDay, szDay); //ÀÏ GetTimeFormFromWord(sysTime.wHour, szHour); GetTimeFormFromWord(sysTime.wMinute, szMinute); GetTimeFormFromWord(sysTime.wSecond, szSecond); _snprintf(szTime, size, "%s%s%s%s%s%s", strYear.c_str(), szMonth, szDay, szHour, szMinute, szSecond); return true; } //43¹ø Çü½Ä ½Ã°£ÀÇ Â÷.. //ÇÑ´ÞÀº 30ÀÏ·Î °è»ê.. int WZTime::GetDiffTimeType4(const char* szTime1, const char* szTime2) { if( szTime1 == NULL || (strcmp( szTime1, "") == 0) ) return 0; if( szTime2 == NULL || (strcmp( szTime2, "") == 0) ) return 0; int nSecond1 = ConvertTime4ToSecond( szTime1 ); int nSecond2 = ConvertTime4ToSecond( szTime2 ); if( nSecond2 >= nSecond1) return nSecond2 - nSecond1; else return nSecond1 - nSecond2; } int WZTime::ConvertTime4ToSecond(const char* szTime) { if( szTime == NULL || (strcmp( szTime, "") == 0) ) return 0; std::string strTemp; std::string strTime = szTime; int nYear = 0, nMonth = 0, nDay = 0, nHour = 0, nMinute = 0, nSecond = 0; int nTotal = 0; //1. ³âµµ strTemp = strTime.substr(0, 2); nYear = atoi( strTemp.c_str() ); nTotal += nYear*12*30*24*60*60; //2. ¿ù strTemp = strTime.substr(2, 2); nMonth = atoi( strTemp.c_str() ); nTotal += nMonth*30*24*60*60; //3. ÀÏ strTemp = strTime.substr(4, 2); nDay = atoi( strTemp.c_str() ); nTotal += nDay*24*60*60; //4. ½Ã°£ strTemp = strTime.substr(6, 2); nHour = atoi( strTemp.c_str() ); nTotal += nHour*60*60; //5. ºÐ strTemp = strTime.substr(8, 2); nMinute = atoi( strTemp.c_str() ); nTotal += nMinute*60; //6. ÃÊ strTemp = strTime.substr(10, 2); nSecond = atoi( strTemp.c_str() ); nTotal += nSecond; return nTotal; } void WZTime::GetTimeFormFromWord(WORD wTime, TCHAR* szTime) { if(wTime < 10) _snprintf(szTime, 10, "0%d", wTime); else _snprintf(szTime, 10, "%d", wTime); }