NAVER

질문 일출과 일몰 구하는 공식 찾아요
비공개 조회수 2,171 작성일2019.01.16
일출과 일몰시간을 이용하여 등을 키고 끌 장치를 만들려고하는데 일출과 일몰 시간을 구하는 방법을 모르겠어요 년,월,일 넣으면 구할수 있는 식 있나요 없으면 다른 식이라도 알려주세요 ㅠㅠ
프로필 사진

답변자님,

정보를 공유해 주세요.

2 개 답변
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.

도움이 되었다면 UP 눌러주세요!
UP이 많은 답변일수록 사용자들에게 더 많이 노출됩니다.
1번째 답변
프로필 사진
Lamanus
우주신
30대 남성 IT/인터넷업 #개발자 게임사, 게임사이트 2위, 구글 4위, 윈도우 37위 분야에서 활동
본인 입력 포함 정보
대부분은 광센서를 이용해서 밝기가 어느 정도 이상이 되면 꺼지도록 합니다. 일출 일몰 계산은 가능하긴 하지만 복잡한 시뮬레이션의 결과이기 때문에 보통은 천문연구원 등에서 표로 제공합니다. 이걸 이용하기는 좀 어렵지 않을까요.

2019.01.16.

도움이 되었다면 UP 눌러주세요!
UP이 많은 답변일수록 사용자들에게 더 많이 노출됩니다.