개발메모(형식에 매이지 않는 짤막한 개발 낙서)

허창원 *.19.45.143
오늘 시간 함수를 살펴보다가 잠깐 상상에 잠겨보았습니다.
전에도 계산해본 적이 있긴 하지만 다 잊어버렸는데, 다시 정확하게 계산해보았습니다.

Visual C++ 6에서 시간값을 저장하기 위한 time_t 라는 형은 long형으로 선언되어 있습니다.
그리고, time_t라는 형은 time() 함수에 의해 이용되는데, 1970년 1월 1일 0시 0분부터 경과한 초를 값으로 가집니다.
그래서 양수 부분만 사용한다고 보면, 표현할 수 있는 시간은
2,147,483,648초
약 68년에 해당됩니다.
그래서 1970년부터 68년이 경과되면 2038 년경이 됩니다.


LabWindows/CVI 7.1의 헤더파일을 살펴본 결과, time_t 라는 형은 unsigned int로 선언되어 있습니다. 그래서 나타낼 수 있는 초는
4,294,297,296초이고, 136년에 해당됩니다.
CVI에서 time()함수는 1900년 1월 1일 0시 0분부터 경과한 초를 출력하므로, 2036 년경까지 표현할 수 있습니다.


하지만, 현재의 32비트 환경에서 개발된 프로그램이 2030년까지 그대로 사용되는 일은 아마 없을 것이므로, 문제는 되지 않을 것 같습니다.

곧 32비트 시대가 지나고, 64비트 시대가 되어서,
time_t가 64비트의 unsigned int형으로 된다면, 5천8백억년 정도의 초 단위 값을 표시할 수 있습니다.



프로그램의 유효사용기간 관련 작업을 하다가
지금부터 100년간 사용하겠다고 했더니 날짜 계산이 제대로 안되길래 알아본 것입니다.

그럼....ㅎㅎ
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
113 DAQmx 장치의 Device Serial Number 얻어오기 허창원 2006-12-18 3480
» 32비트 환경에서 시간함수의 표현가능 년도는 대략 2036~2038년까지 허창원 2005-04-13 3453
111 windef.h 파일에 선언된 내용 일부 허창원 2005-09-29 3440
110 [메모] Dev1/ai0:8 이런 문자열에서 채널수를 뽑아내는 처리 허창원 2008-08-03 3397
109 자주 쓰는 타이머(Timer) 컨트롤 Setting 문장 허창원 2005-01-29 3389
108 [Doc] Accessing Parallel Ports with VISA 허창원 2007-06-15 3381
107 구간을 Linear/Log scale로 등분하고자 할 때 허창원 2005-12-27 3357
106 TCP 연결이 되었다가 바로 끊어질 때 file 허창원 2008-07-05 3346
105 현재 날짜,시간 정보를 이용한 기본 데이터 파일명 구성하기 허창원 2004-12-30 3346
104 Password 컨트롤 사용법 메모 허창원 2005-08-30 3345
103 테이블의 전체 셀을 스캔하며 해당 값을 얻는 콜백함수 예 허창원 2004-12-29 3343
102 테이블의 셀에 이미지를 표시하는 과정 요약 허창원 2007-09-01 3339
101 Reading/Writing .ini-Style files Help 허창원 2005-01-26 3317
100 Cannot find icon file. 이라는 에러메시지 허창원 2005-07-23 3315
99 프로그램 종료시에 파일 저장여부, 종료여부 물어보는 예 허창원 2004-12-30 3307
98 Noisy Sine Wave 데이터 만들기 허창원 2005-11-24 3298
97 클립보드에 문자열 복사하기/가져오기 허창원 2006-01-09 3295
96 테이블 콜백의 간단한 예 허창원 2004-12-29 3290
95 수신된 문자열을 16진수로 스트링 컨트롤에 출력하는 예 허창원 2005-01-11 3289
94 Thread 사용 순서 간단 요약 허창원 2012-11-22 3288