시간과 관련된 시스템변수는 다음과 같습니다.
구분 | 변수 | 반환값 | 비고 | (rtos 변수 2 10) |
현재시간 | (getvar 'DATE) | 2.45773e+06 | 줄리안 | "2457727.721527778" |
파일 생성시간 | (getvar 'TDCREATE) | 2.45772e+06 | 줄리안 | "2457721.034143519" |
파일 최종 저장시간 | (getvar 'TDUPDATE) | 2.45773e+06 | 줄리안 | "2457727.656655093" |
현재시간 | (getvar 'CDATE) | 2.01612e+07 | 년월일.시간 | "20161204.17192200" |
(getvar 'CDATE) 의 결과는 우리가 잘 아는 "년월일.시간분초"입니다. 즉, 2016년 12월 4일 17시 19분 22.00초 입니다.
그러나, 위의 세가지의 사간은 "수정 율리우스력 날짜(MJD) 형식"으로 표시됩니다. (줄리안시간이라고 합니다.)
<율리우스력 일 수>.<하루에 대한 십진 분수>" 로써, 기원전 4713년 1월 1일 정오를 기준 날짜로 시작하여 경과 일 수를 지정하는 전세계적 과학 표준입니다. (주로 천문학에서 사용된다고 합니다.)
이 어렵게 생긴 줄리안시간을 우리가 알 수 있는 년월일시간으로 변경하는 방법은 다음과 같습니다.
;;; ------------------------
;;; 줄리안시간을 일반 년월일시간으로 변경
;;; izzarder.com
(defun xi:Julian->Time (value format) (menucmd (strcat "m=$(edtime,$(getvar," value ")," format ")")) )
이를 이용해서 (gatvar 'DATE) 를 줄리안으로 변경하면 다음과 같습니다.
(xi:Julian->Time "DATE" "YYYY MO DD HH MM") => "2016 12 04 17 34"
이 때 사용되는 포맷의 영문자 조합의 의미는 아래와 같습니다.
구분 | 내용 | 결과 |
D | 일 | 4 |
DD | 0으로 시작하는 일 | 04 |
DDD | 영문요일 짧게 | Mon |
DDDD | 영문요일 전체 | Monday |
M | 월 | 6 |
MO | 0으로 시작하는 월 | 06 |
MON | 영문월 짧게 | Jun |
MONTH | 영문월 전체 | June |
YY | 두자리 년도 | 16 |
YYYY | 네자리 년도 | 2016 |
H | 시간 | 7 |
HH | 0으로 시작하는 시간 | 07 |
MM | 분 | 30 |
SS | 초 | 25 |
MSEC | 밀리초 | 250 |
AM/PM | 대문자 오전 또는 오후 | AM |
am/pm | 소문자 오전 또는 오후 | am |
A/P | 대문자 오전 또는 오후 짧게 | A |
a/p | 소문자 오전 또는 오후 짧게 | a |
다른 방법이 하나 더 있긴 합니다만, AutoCAD 에서만 사용할 수 있습니다.
Command: (load "julian")
Command: (jtoc (getvar 'tdcreate)) => (1996 9 30 21 22 38.74)
Command: (jtoc (getvar 'tdupdate)) => (2003 2 11 8 33 30.682)
반환되는 숫자리스트는 (년, 월, 일, 시, 분, 초) 입니다.
'Lisp & Tips > Lisp' 카테고리의 다른 글
Logand 함수 사용법 (0) | 2016.12.25 |
---|---|
Getfiled 사용법 (0) | 2016.12.25 |
vl-file-systime 의 사용법 (0) | 2016.12.04 |
현재 도면에 로딩된 모든 명령어/함수/변수 보기 (0) | 2016.10.17 |
vla-get-selectionsets, vla-get-activeselectionset 활용법 (0) | 2016.05.08 |