C/C

time(), localtime() 시간

HicKee 2022. 10. 13. 22:22

헤더 파일 <time.h>

 

 time_t 타입

   >> 시간을 다루기 위해서 만들어진 데이터 타입

         32, 64비트 정수값으로 표현

         1970년 1월 1일 00:00 UTC (유닉스 타임)이후 경과된 초를 정수값으로 표현

 tm 구조체

struct tm
{
    int tm_sec;   // seconds after the minute - [0, 60] including leap second
    int tm_min;   // minutes after the hour - [0, 59]
    int tm_hour;  // hours since midnight - [0, 23]
    int tm_mday;  // day of the month - [1, 31]
    int tm_mon;   // months since January - [0, 11]
    int tm_year;  // years since 1900
    int tm_wday;  // days since Sunday - [0, 6]
    int tm_yday;  // days since January 1 - [0, 365]
    int tm_isdst; // daylight savings time flag
};

int tm_mon; 은 0월~11월 까지 사용하기 위해서 +1 을 써야한다.
tm_year; 는 1900년도 부터 년을 계산하기 때문에 +1900 을 해줘야한다.

time()

time_t 데이터 타입 반환
time_t 의 포인터 타입 매개변수

1970년 1월 1일 0시(유닉스 타임)부터 현재까지 흐른 시간을 time_t 타입으로 반환

localtime()

timer에는 변환하는 시간 값에 대한 포인터를 지정
시간은 년/월/일 등의 값을 나타내는 멤버가 있는 tm 구조체를 반환

 

#include <stdio.h>
#include <time.h>

int main() {

	time_t timer;
	struct tm* t;

	timer = time(NULL);

	t = localtime(&timer);

	char tim[40] = { 0, };

	sprintf(tim, "%d년 %d월 %d일 - %d시 %d분 %d초",
		t->tm_year + 1900,
		t->tm_mon + 1,
		t->tm_mday,
		t->tm_hour,
		t->tm_min,
		t->tm_sec);
	printf("%s", tim);
}

 

2022년 10월 13일 - 22시 22분 8초

'C > C' 카테고리의 다른 글

strcpy(), strncpy() 문자열 복사(copy)  (0) 2022.10.19
fopen(), fclose() 파일입출력  (0) 2022.10.15
파일 입출력  (0) 2022.10.11
모듈화 2 - 구조체  (0) 2022.10.08
모듈화 1  (0) 2022.10.08