제 14 장 날짜와 시간 1/2
Post on 07-Jan-2016
77 Views
Preview:
DESCRIPTION
TRANSCRIPT
Computational Astronomy
제 제 14 14 장 날짜와 시간 장 날짜와 시간 1/21/2
전산천문학 2
2007. 가을
Computational Astronomy
MissionMission
• 연월일로 표시되는 날짜와 시간을 프로그래밍을 이용하여 처리할 수 있다 .
Computational Astronomy
다루어야 할 문제다루어야 할 문제
• 오늘은 2007 년 10 월 30 일입니다 . 오늘은 2007 년에서 몇일째 되는 날일까요 ? 그럼 지금으로부터 100 일전은 몇월 몇일일까요 ? 그녀를 만난 날은 2002 년 11 월 27 일입니다 . 오늘은 그녀를 만난지 몇일째일까 ?
• 2000 년 11 월 1 일부터 2007 년 5 월 20 일까지의 광도가 변하는 식쌍성의 광도 곡선을 그리고 싶다 . 가로축을 연월일로 표시하여 광도 곡선을 그리고자 한다 .
• 시간에 따라 변하는 신호를 아래와 같은 그래프로 표현하고자 한다 .
• 20071021123131(YYYYMMDDhhmmss) 형식으로 주어지는 100 년간의 자료를 이용하여 , 원하는 기간 동안의 자료를 추출하고자 한다 .
Computational Astronomy
생각해야 할 문제생각해야 할 문제
시간을 숫자로 표시해보자 연월일시분초의 숫자면 되겠지
그럼 더하고 빼기가 가능하다 . 20071030152122 + 1 (1초뒤 )
200212311159 에서 1 초 뒤는 ?
200301010000
30 일뒤는 31 일 또는 1 일 ?28 일뒤는 29 일 또는 1 일 ?12 월 다음은 1 월
월은 12 진법시는 24 진법분은 60 진법일은 28 일 , 29 일 , 30 일 , 31 일 단위 그때 그때 다르다 .
윤년이라는 것도 있는데 , 이것도 계산해야 한다 .
지금 쓰는 달력을 프로그래밍으로 처리하려면 너무 복잡하다 .심지어는 중간에 율리우스력이나 그레고리력이 사용된 날짜도 고려해야 한다 .
Computational Astronomy
그래도 그래도 날짜와 시간을 다루어야 하는 것이 날짜와 시간을 다루어야 하는 것이
현실이다현실이다 . .
기준을 정해서 그날부터 지나온 시간을 숫자로 표현하자 !
그냥 복잡하게 할 것 없이 연산이 가능한 숫자로 만들어 보자 .
Computational Astronomy
줄리언 데이 줄리언 데이 (Julian Day)(Julian Day)
우리의 고민을 덜어준 천문학자들의 날짜 계산 방식
기원전 4713 년 1 월 1 일로부터 경과한 일수
4713 년 1 월 2 일 : 2
소수점을 이용하면 시분초까지 표현이 가능
Computational Astronomy
줄리언 데이줄리언 데이
• 기원전 4713 년 1 월 1 일부터 경과한 날• 소수점을 이용하여 , 시분초 표시
0.1 : 2.4 시간 , 144 분 또는 8640 초 0.01 : 0.24 시간 , 14.4 분 또는 864 초
• 전통에 따라 정오를 기준으로 날짜가 변경됨 기원전 4713 년 1 월 2 일 자정 : 0.5
• B.C. 4713 년 1 월 1 일의 요일은 ? 월요일 JD 를 7 로 나누어서 요일도 알 수 있다 .
Computational Astronomy
줄리언 데이줄리언 데이
• 줄리언 데이 계산법 http://en.wikipedia.org/wiki/Julian_day#Calculationa=[(14-month)/12], y=year+4800-a
m=month+12a-3
그레고리력 기간 ( 정오기준 ) 1582 년 10 월 5 일JDN=day+[(153m+2)/2]+365y+(y/4)-(y/100)+(y/400)-32045
율리우스력 기간 ( 정오기준 )
JDN=day+[(153m+2)/2]+365y+(y/4)-32083
JD=JDN+[(hour-12)/24]+(minute/1440)+(second/86400)
★ 1582 년 10 월 5 일부터 15 일까지는 교황 그레고리 13 세에 의하여 삭제
Computational Astronomy
줄리언 데이 줄리언 데이 (Julian Day)(Julian Day) 를 계산하여 를 계산하여 프로그래밍하자프로그래밍하자 ..
날짜를 줄리언 데이로줄리언데이를 연월일 시분초로
JULDAY 와 CALDAT 함수
Computational Astronomy
trainingtraining
• JULDAY 함수 Result=JULDAY(Month, Day, Year, Hour, Minute, Second)
• 결과는 Double Precision 의 Jullian Day
• IDL> print, julday(1,1,-4713)
• IDL> print, julday(9, 21, 2006)
• IDL> print, julday(12,26, 2003)
• IDL> print, julday(9, 21, 2006)-julday(12,26,2003)
• IDL> print, julday(1, [1,2,3,4,5], -4713)
• IDL> print, julday(10, indgen(13)+4, 1582)
Computational Astronomy
trainingtraining
• CALDAT 함수 CALDAT, Julian, Month [,Day [,Year [,Hour, [Minute [,Second]]]]]
• 결과는 월 , 일 , 연도 , 시 , 분 , 초가 입력한 변수에 저장
• IDL> meetday=julday(1, 1, 2004)+100
• IDL> caldat, meetday, m, d, y
• IDL> print, y, m, d
• IDL> day222=julday(1,1,2004)+221
• IDL> caldat, day222, m, d, y
• IDL> print, y, m, d
• IDL> daytime=julday(8, 30, 2005, 3, 50, 17)
• IDL> caldat, daytime, m, d, y, h, minute, s
• IDL> print, y, m, d, h, minute, s
top related