시간과 관련된 함수

2016.12.04 17:59

시간과 관련된 시스템변수는 다음과 같습니다.

 

 

 구분

 변수

 반환값

 비고

 (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)

 

반환되는 숫자리스트는 (년, 월, 일, 시, 분, 초) 입니다.

 

 

저작자 표시 비영리 동일 조건 변경 허락
신고

+ Recent posts