오늘은 대한입니다.
sun's longitude:300 29 47.91 
· 자유게시판 · 묻고답하기 · 알파문서 · RPMS list
· 사용자문서 · 팁/FAQ모음 · 리눅스Links · 자료실
· 서버정보 · 운영자 · Books/FAQ · FreeBSD
/board/read.php:소스보기  

질문과 답변 게시판입니다.

현재 실시간으로 이곳 서버의 설정파일(몇개)를 보여주고 있습니다.
서버의 설정내용에 관한 질문은 먼저 이곳 서버의 설정내용을 참고하시길 바랍니다.

[*** 쓰기 금지단어 패턴 ***]
글 본문 중간에 업로드할 이미지를 추가하는 방법 : @@이미지이름@@
ex) @@foo.gif@@
2828 번 글의 답장글: Re: class.lunar.php 문의
글쓴이: 산이 [홈페이지] 글쓴날: 2009년 06월 04일 02:32:08 목(새벽) 조회: 2502
[인철]님이 남기신 글:

>-----------------------------------------
>답변자가 기본적으로 참고할 내용입니다.
>- 배포판(옵션)    : 
>- 커널버전(옵션)
  : 
>- 데몬버전(예:apache
 1.3.27) : 
>- 데몬설치유형(RPM/컴파일/기타)
 : 
>-----------------------------------------
>*스팸필터링:한글
 4자(8개 문자) 이상 없으면 스팸페이지로 이동합니다.
>
>
>http://linuxchannel.net/docs/lunar.txt
>글을 읽고 소스도 보았습니다.
>
>32bit 정수 자릿수 문제때문에 mktime 제한 때문에 2038년으로 제한
하신거 같습니다.
>
>첨부한 파일을 include 하고 나서
>
>class.solar.php 
>class.lunar.php 소스내용중 해당 php 명령을 교체하면
>
>제한을 넘어서 가능해집니다.
>
>양력 > 음력 변환에서 입력한 년도가 안되는군요..
>2038 이하의 년도만 음력 변환이 됩니다.
>절기는 2038년 이후도 잘 표시됩니다.
>음력변환부분에
 고정이 된거 같습니다.
>

위의 2개의 파일은 내부 기본 로직은 unix_timestamp 입니다.
따라서 Unix/Linux 에서는 1901 ~ 2038 까지만 가능합니다(32 bits).

이것을 확장가능하게 끔 하려면

http://ftp.linuxchannel.net/devel/php_calendar/class.calendar.php
(이건 달력인데 먼 과거나 먼 미래까지 표시됩니다, 음-양력
변환 없음)

이것처럼 unix_timestamp 을 완전히 버리고 JD(Julian day)로 그 기본
로직을 바꿔야합니다.

그런데
음력<->양력 변환은 원론적인 설명부터 해야하는데...

우선 태양 - 지구 - 달이라는 천체의 운행(역학)에 기반을 두고
있습니다.
때문에 역학에 대해서 아주 전문적인 지식없이 구현하기가
상당히 어렵습니다.

또한 정해진 공식도 없고, 정확한 태양 - 지구 - 달의 위치를
계산하기 위해서는 미해군 슈퍼컴퓨터로 계산하고 있다고
합니다. 우리는(한국 천문연구원) 이 data 를 받아서 달력을
만든다고 합니다.

그리고 또한 천체의 위치계산시 중요한 data 변수가 있는
"delta T"가 바로 그것입니다. 이는 오르지 관측을
통해서만 그 값을 구할 수 있다고 합니다.

따라서 먼 미래의 음력<->양력 변환은 사실 그 의미가
없습니다. 즉 delta T 때문이죠.
(변환한다고 해도 틀릴 확률이 매우 높음)

여차여차 해서 제가 만들어 놓은 것은 원리를 깨우쳐가면서
안돌아가는 머리로 겨우 근사식으로 짜놓은 것이고 오차
때문에 날짜 보정해 놓은 것입니다.

만약

위의 2개의 class를 unix_timestamp 가 아닌 JD를 기반한 로직으로
수정하면 어찌되었든 음력<->양력 변환은 가능합니다.

그런데 오차가 상당히 심하기 때문에 별 신뢰성이 없습니다.

이것을 수정할려고 올초에 작심했다가 그만뒀습니다. 당시
너무 힘들게 코딩했기 때문에 수정하려면 머리털 다 뽑힐까
봐서... :)



>또한 2038을 한계로 잡고 절기 간격을 평균을 정해놓으셔서
괜찮았는데..
>
>3000년이상 넘어가면 기준으로 잡힌 년도와 멀어져서 점점
간격이 벌어지네요..
>

이건 앞서 얘기했듯이 delta T 또는 근사식때문에 어찌할 방법이
없습니다.
(미해군 슈퍼컴퓨터를 크래킹하지 않고서는 ㅠㅠ)


>입력한 년도를 기준으로 - 50년치를 자동으로 절기간격평균을
 재설정해서 처리하면 조금 나아질까요??
>

획기적인 방법이나 계산식을 누가 만들지 않고서는
힘들겁니다. 천문학 전공한 사람이라면 아마 가능할지도...(전
 천문학 근처도 가보질 않아서 ㅠㅠ)

JD2000.0 기준이기 때문에 앞뒤 100년 정도가 비교적 맞고 그
범위를 넘어서면 상당히 틀어집니다.

평균치 계산법은 구글에서 "진짜만세력"
 검색해보면 참고가 될듯합니다.
(아마 소스가 있을 듯)



>문외한이라 생각나는게 별루 없네요..
>
>
>
>어느부분을 수정해야 하는지 알고 싶습니다.
>
>가능하면 첨부 파일을 이용하여 수정된 소스를 바라면 너무
욕심일까요 -_-;;
>

unix_timestamp -> JD 기반으로 언젠가 고쳐야하는데 ㅠㅠ
...

첨부한 ADOdb 는 외국사람이 만든것 같은데 맞나요?
이건 음력<->양력 변환은 없네요.

http://ftp.linuxchannel.net/devel/php_calendar/
이것과 비슷해 보입니다.


참고로,

http://ftp.linuxchannel.net/devel/php_solar/
http://ftp.linuxchannel.net/devel/php_lunar/
http://ftp.linuxchannel.net/devel/php_calendar/


php_solar 는 태양의 위치, 절기, 일출 계산, 별자리계산 등등
php_lunar 는 음력<->양력 변환, 일월식, 별자리 등등
php_calendar 는 달력과 날짜 표시(먼 과거, 미래 표시가능)

그리고 각 소스위 코멘중에서 [demo] 나 [docs] 링크 따라가면 해당
내용을 볼 수 있습니다.

그런데 혹시 kldp 에 활동하고 계신분인가요?
어떻게 해서 이런것에 관심을 가지게 되었는지 여쭈어보고
싶네요.


>읽어봐주셔서 감사드립니다. 

========================================

 
이전글 : class.lunar.php 문의
다음글 : Re: Re: class.lunar.php 문의  
 from 211.201.91.134
JS(Redhands)Board 0.4 +@

class.lunar.php 문의 Re: Re: class.lunar.php 문의
인쇄용 


apache lighttpd linuxchannel.net 
Copyright 1997-2026. linuxchannel.net. All rights reserved.

Page loading: 0.02(server) + (network) + (browser) seconds