질문
일출과 일몰 구하는 공식 찾아요
일출과 일몰시간을 이용하여 등을 키고 끌 장치를 만들려고하는데 일출과 일몰 시간을 구하는 방법을 모르겠어요 년,월,일 넣으면 구할수 있는 식 있나요 없으면 다른 식이라도 알려주세요 ㅠㅠ
내 프로필 이미지
- 질문수25
- 채택률46.7%
- 마감률53.3%
답변하시면 내공 10점을 답변이 채택되면 내공 25점을 드립니다.
1번째 답변
Lamanus
채택답변수 1만+받은감사수 32
우주신
30대 남성
IT/인터넷업
#개발자
게임사, 게임사이트 2위, 구글 4위, 윈도우 37위 분야에서 활동
본인 입력 포함 정보
프로필 더보기
대부분은 광센서를 이용해서 밝기가 어느 정도 이상이 되면 꺼지도록 합니다. 일출 일몰 계산은 가능하긴 하지만 복잡한 시뮬레이션의 결과이기 때문에 보통은 천문연구원 등에서 표로 제공합니다. 이걸 이용하기는 좀 어렵지 않을까요.
지식iN 교육기부 참여로 작성된 답변입니다.
알아두세요!
위 답변은 답변작성자가 경험과 지식을 바탕으로 작성한 내용입니다. 포인트 선물할 때 참고해주세요.
2019.01.16.
2번째 답변
제가 원리를 파악하여 일출일몰 시간 계산하는걸 만든게 있습니다,
간단한 식은 아니고 프로그램으로 계산 해야 합니다.
월일과 위치(위도,경도)도 넣어 주어야 합니다.
오차가 좀 있긴 하지만 타이머에 사용 하기에는 큰 문제가 없죠.
===================파이썬 쏘스
#일출, 일몰시간 계산
import math
def NightR(Q1,Q2): #밤 비율 계산
if abs(Q2) > abs(90)-abs(Q1):
if Q1*Q2 > 0:
return 0
if Q1*Q2 < 0:
return 1
rat1=math.acos(math.tan(math.radians(Q1))*math.tan(math.radians(Q2)))
rat2=2*math.degrees(rat1)
return rat2/360
def ptime(tit,stim): #비율을 시간으로 계산 및 출력
nti=int(stim*24)
ims=stim*24 - nti
nmi=int(ims*60)
ims=ims*60 - nmi
nse=int(ims*60+0.5)
if nse==60 : #반올림처리
nse=0
nmi=nmi+1
if nmi==60 :
nmi=0
nti=nti+1
print(tit,nti,':',nmi,':',nse)
# 월 1 2 3 4 5 6 7 8 9 10 11 12
lmsd=[285,316,344,10,40,71,101,132,163,193,214,254] #춘분(3.21)부터 전월까지 누적일
mm=int(input('월입력 :'))
dd=int(input('일입력 :'))
se2=float(input('위도 입력 :')) #북위 +, 남위 -
se3=float(input('경도 입력 :'))
pd=lmsd[mm-1]+dd #경과 날자
if pd >= 365 : #3월 21~31일 처리
pd=pd-365
se1=23.5*math.sin(math.radians(pd*360/365)) #각도 계산 sin90
nrat=NightR(se1,se2)
nrat=nrat-0.00625 #9분보정
if nrat <= 0:
print('계속 낮 입니다')
else:
if nrat >= 1:
print('계속 밤 입니다')
else :
ptime('일출시간',nrat/2+(135-se3)/360)
ptime('일몰시간',1-nrat/2+(135-se3)/360)
------------------------수행결과
월입력 :4
일입력 :16
위도 입력 :37.5
경도 입력 :127
일출시간 5 : 55 : 51
일몰시간 19 : 8 : 9
----------------------- 네이버에 나온 37.5-127(서울중구) 일출일몰 시간
1~2분 차이 밖에 없네요
알아두세요!
위 답변은 답변작성자가 경험과 지식을 바탕으로 작성한 내용입니다. 포인트 선물할 때 참고해주세요.
2019.04.16.