제 14 장 날짜와 시간 1/2

11
Computational Astronomy 14 14 제제제 제제 제제제 제제 1/2 1/2 전전전전전 2 2007. 전전

description

제 14 장 날짜와 시간 1/2. 전산천문학 2. 2007. 가을. Mission. 연월일로 표시되는 날짜와 시간을 프로그래밍을 이용하여 처리할 수 있다. 다루어야 할 문제. 오늘은 2007 년 10 월 30 일입니다 . 오늘은 2007 년에서 몇일째 되는 날일까요 ? 그럼 지금으로부터 100 일전은 몇월 몇일일까요 ? 그녀를 만난 날은 2002 년 11 월 27 일입니다 . 오늘은 그녀를 만난지 몇일째일까 ? - PowerPoint PPT Presentation

Transcript of 제 14 장 날짜와 시간 1/2

Page 1: 제  14  장  날짜와 시간  1/2

Computational Astronomy

제 제 14 14 장 날짜와 시간 장 날짜와 시간 1/21/2

전산천문학 2

2007. 가을

Page 2: 제  14  장  날짜와 시간  1/2

Computational Astronomy

MissionMission

• 연월일로 표시되는 날짜와 시간을 프로그래밍을 이용하여 처리할 수 있다 .

Page 3: 제  14  장  날짜와 시간  1/2

Computational Astronomy

다루어야 할 문제다루어야 할 문제

• 오늘은 2007 년 10 월 30 일입니다 . 오늘은 2007 년에서 몇일째 되는 날일까요 ? 그럼 지금으로부터 100 일전은 몇월 몇일일까요 ? 그녀를 만난 날은 2002 년 11 월 27 일입니다 . 오늘은 그녀를 만난지 몇일째일까 ?

• 2000 년 11 월 1 일부터 2007 년 5 월 20 일까지의 광도가 변하는 식쌍성의 광도 곡선을 그리고 싶다 . 가로축을 연월일로 표시하여 광도 곡선을 그리고자 한다 .

• 시간에 따라 변하는 신호를 아래와 같은 그래프로 표현하고자 한다 .

• 20071021123131(YYYYMMDDhhmmss) 형식으로 주어지는 100 년간의 자료를 이용하여 , 원하는 기간 동안의 자료를 추출하고자 한다 .

Page 4: 제  14  장  날짜와 시간  1/2

Computational Astronomy

생각해야 할 문제생각해야 할 문제

시간을 숫자로 표시해보자 연월일시분초의 숫자면 되겠지

그럼 더하고 빼기가 가능하다 . 20071030152122 + 1 (1초뒤 )

200212311159 에서 1 초 뒤는 ?

200301010000

30 일뒤는 31 일 또는 1 일 ?28 일뒤는 29 일 또는 1 일 ?12 월 다음은 1 월

월은 12 진법시는 24 진법분은 60 진법일은 28 일 , 29 일 , 30 일 , 31 일 단위 그때 그때 다르다 .

윤년이라는 것도 있는데 , 이것도 계산해야 한다 .

지금 쓰는 달력을 프로그래밍으로 처리하려면 너무 복잡하다 .심지어는 중간에 율리우스력이나 그레고리력이 사용된 날짜도 고려해야 한다 .

Page 5: 제  14  장  날짜와 시간  1/2

Computational Astronomy

그래도 그래도 날짜와 시간을 다루어야 하는 것이 날짜와 시간을 다루어야 하는 것이

현실이다현실이다 . .

기준을 정해서 그날부터 지나온 시간을 숫자로 표현하자 !

그냥 복잡하게 할 것 없이 연산이 가능한 숫자로 만들어 보자 .

Page 6: 제  14  장  날짜와 시간  1/2

Computational Astronomy

줄리언 데이 줄리언 데이 (Julian Day)(Julian Day)

우리의 고민을 덜어준 천문학자들의 날짜 계산 방식

기원전 4713 년 1 월 1 일로부터 경과한 일수

4713 년 1 월 2 일 : 2

소수점을 이용하면 시분초까지 표현이 가능

Page 7: 제  14  장  날짜와 시간  1/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 로 나누어서 요일도 알 수 있다 .

Page 8: 제  14  장  날짜와 시간  1/2

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 세에 의하여 삭제

Page 9: 제  14  장  날짜와 시간  1/2

Computational Astronomy

줄리언 데이 줄리언 데이 (Julian Day)(Julian Day) 를 계산하여 를 계산하여 프로그래밍하자프로그래밍하자 ..

날짜를 줄리언 데이로줄리언데이를 연월일 시분초로

JULDAY 와 CALDAT 함수

Page 10: 제  14  장  날짜와 시간  1/2

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)

Page 11: 제  14  장  날짜와 시간  1/2

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