1. 현재 시간 #
- COleDateTime tm = COleDateTime::GetCurrentTime();
- CString curDate = tm.Format("%Y%m%d");
%Y%m%d 20130809 %Y-%m-%d %H:%M:%S 2013-08-09 15:46:44
1.1. CTime::Format Types #
%a Abbreviated weekday name %A Full weekday name %b Abbreviated month name %B Full month name %c Date and time representation appropriate for locale %d Day of month as decimal number (01~31) %H Hour in 24-hour format (00~23) %I Hour in 12-hour format (01~12) %j Day of year as decimal number (001~366) %m Month as decimal number (01~12) %M Minute as decimal number (00~59) %p Current locale's A.M./P.M. indicator for 12-hour clock %S Second as decimal number (00~59) %U Week of year as decimal number, with Sunday as first day of week (00~53) %w Weekday as decimal number (0~6; Sunday is 0) %W Week of year as decimal number, with Monday as first day of week (00~53) %x Date representation for current locale %X Time representation for current locale %y Year without century, as decimal number (00~99) %Y Year with century, as decimal number %z, %Z Either the time-zone name or time zone abbreviation, depending on registry settings; no characters if time zone is unknown %% Percent sign
2. 두 COleDateTime 객체 간의 시간 차이 #
- COleDateTime tm1;
- COleDateTime tm2;
- tm1.ParseDateTime(_T("2012-01-01 12:00:01"));
- tm2.ParseDateTime(_T("2013-02-02 12:10:30"));
- COleDateTimeSpan ts = tm2 - tm1;
- CString str;
- str.Format(_T("%d일 %d시간 %d분 %d초, %g시간"),
- ts.GetDays(), ts.GetHours(), ts.GetMinutes(), ts.GetSeconds(), ts.GetTotalHours());
- AfxMessageBox(str);
398일 0시간 10분 29초, 9552시간
- CString str1("2012-11-20 14:40:57");
- CString str2("2012-11-20 14:40:59");
- COleDateTime tm1;
- COleDateTime tm2;
- tm1.ParseDateTime(str1);
- tm2.ParseDateTime(str2);
- COleDateTimeSpan ts = tm2 - tm1;
- D0(_T("%f"), ts.GetTotalSeconds());
2.000000
3. 시간 늘리기 #
COleDateTimeSpan( long lDays, int nHours, int nMins, int nSecs );
- COleDateTime tm = COleDateTime::GetCurrentTime();
- COleDateTimeSpan AddMin(0, 0, 5, 0);
- tm += AddMin;
4.1. SYSTEMTIME to struct tm #
- COleDateTime dt = COleDateTime::GetCurrentTime();
- SYSTEMTIME st;
- dt.GetAsSystemTime(st);
- struct tm *tm_date = new tm;
- tm_date->tm_hour = st.wHour;
- tm_date->tm_min = st.wMinute;
- tm_date->tm_mday = st.wDay;
- tm_date->tm_mon = st.wMonth;
- tm_date->tm_sec = st.wSecond;
- tm_date->tm_year = st.wYear - 1900;
- time_t time = mktime(tm_date);
4.1.1. SYSTEMTIME to struct tm 참고 #
- typedef struct _SYSTEMTIME {
- WORD wYear;
- WORD wMonth;
- WORD wDayOfWeek;
- WORD wDay;
- WORD wHour;
- WORD wMinute;
- WORD wSecond;
- WORD wMilliseconds;
- } SYSTEMTIME;
- TM Data structure
- {
- tm_sec //Seconds after minute (0 – 59)
- tm_min//Minutes after hour (0 – 59)
- tm_hour//Hours since midnight (0 – 23)
- tm_mday //Day of month (1 – 31)
- tm_mon//Month (0 – 11; January = 0)
- tm_year//Year (current year minus 1900)
- tm_wday//Day of week (0 – 6; Sunday = 0)
- tm_yday//Day of year (0 – 365; January 1 = 0)
- tm_isdst//Always 0 for gmtime
- }