헤더파일 #include
std::time_t
epoch (1970년 1월 1일 0시0분0초)이후 현재까지의 초단위 경과시간.
std::tm
구조체 . 년,월,일,시,분,초 분리 처리시 용이.
//UTC(=GMT)
std::tm* gmtime( const std::time_t* time );
//로컬시
std::tm* localtime( const std::time_t *time );
코드예-1. 현재시간 받고 년월일시분초 분리. |
||||
std::time_t 로 epoch 이후의 초단위 시간을 tNow 로 받고,
tNow로부터 현재의 년,월,일,시,분,초를 각각 구하기 위하여 std::localtime(&tNow) 함수이용하여 std::tm 구조체 형식으로 변경하여 각각의 멤버변수 tm_hour, tm_min, 등을 취하고 있다.
상기코드 실행결과
|
||||
코드예-2. 임의 지정 "년월일시분초"를 std::tm 형식으로 |
||||
1. std::tm 형 변수 tmYMDHMS 의 멤버변수에 2015년 3월 17일 13시 35분 25초를 기록하고
2. 상기 1의 변수 tmYMDHMS 를 함수 std::mktime(&tmYMDHMS); 이용하여 time_t 형 변경하고,
3. 상기2를 아스키타입으로 출력하고 있다.
상기코드 실행결과.
- 상기 코드에서는 요일을 지정하지 않았는데 알아서 요일을 찾아줌.
|
||||
코드예-3. 당일 0시 이후 현재까지의 경과시간 초단위로 받기. |
||||
당일 0시 0분0초 기준 실행시점의 경과시간을 초단위로 구하기.
1. 현재 시점의 tNow 를 std::tm 형식으로 변경하고(함수 std::localtime(&tNow) )
2. 상기1의 std::tm 형식의 멤버변수의 년월일만 신규 tm변수 tmYMDHMS 에 기록하고 시,분,초에는 0을 기록.
3. 상기2의 tmYMDHMS 를 time_t 형 변수 theDay000 으로 받고,
4. 상기1 tNow 와 상기3 theDay000 의 초단위 차이를 함수 std::difftime(tNow, theDay000) 로 받음. 인자1-인자2의 값이 반환됨.
상기코드 실행결과. (코드 실행시점 오후 11시 9분 이었음.)
|
||||
코드예 4. 특정 년월일시분초 입력하면 초단위 반환
/*
년, 월, 일, 시, 분 , 초 입력하면 초단위의 epoch (1970년1월1일0시0분0초) 이후의 경과시간 반환.
*/
int64_t get_epoch_sec(int year, int mon, int day, int hour, int min, int sec)
{
std::tm tm_ymdhms;
tm_ymdhms.tm_year = year - 1900; // 1900년 이후 몇년 경과 되었는지 기록해야함.
tm_ymdhms.tm_mon = mon - 1; // 1월은012월은 11
tm_ymdhms.tm_mday = day;
tm_ymdhms.tm_hour = hour;
tm_ymdhms.tm_min = min;
tm_ymdhms.tm_sec = sec;
std::time_t t_theday = std::mktime(&tm_ymdhms); // time_t 형식으로 변환. 초로 표현됨.
return t_theday;
}
연관
상위정리.
Visual Studio/VC++/C/C# 활용정리 -> http://igotit.tistory.com/11
첫 등록 : 2016년 2월22일
최종 수정 : 2020.03.29
단축 주소 : https://igotit.tistory.com/673
'VisualStudio.C++.C# > 코딩팁,함수활용,단편' 카테고리의 다른 글
libcurl. curl_easy_perform. perform a blocking file transfer (0) | 2020.05.05 |
---|---|
Event Object, CreateEvent.WaitForSingleObject (0) | 2020.04.20 |
Json 문자열에서 키의 값 추출 (0) | 2020.03.22 |
MFC C++. std::string ,std::wstring, CString , CT2CA, CA2CT, (0) | 2020.03.22 |
gettimeofday. timeval . 윈도우 에서 구현하기 (0) | 2020.03.20 |
댓글