이 struct는 이름 있는 멤버(named member)로 구성된다. 즉, 초 단위를 tm_sec로, 연 단위를 tm_year로 표현했다. 날짜를 인코딩하는 방법은 간단하다. 가령 이 글을 쓰는 현재 날짜를 표현하면 다음과 같다.
터미널
0 > LC_TIME=C date -u
1 Wed Apr 3 10:00:47 UTC 2019
yday.c
29 struct tm today = {
30 .tm_year = 2019-1900,
31 .tm_mon = 4-1,
32 .tm_mday = 3,
33 .tm_hour = 10,
34 .tm_min = 0,
35 .tm_sec = 47,
36 };
이렇게 하면 struct tm 타입 변수 하나가 생성되면서 각 멤버가 적절한 값으로 초기화된다. 이 구조체에서 멤버의 위치나 순서는 중요하지 않다. 닷(.) 뒤에 멤버의 이름을 적기만 하면 해당 데이터를 지정할 수 있다.
▲ 그림 6-12 이름 있는 멤버로 정의한 today