내일은 대한입니다.
sun's longitude:299 10 41.91 
· 자유게시판 · 묻고답하기 · 알파문서 · RPMS list
· 사용자문서 · 팁/FAQ모음 · 리눅스Links · 자료실
· 서버정보 · 운영자 · Books/FAQ · FreeBSD
/board/delete.php:소스보기  
알파문서
자주 잊어먹거나, 메모해 둘 필요성이 있는 팁이나 문서, 기타 등등
[*** 쓰기 금지단어 패턴 ***]
글 본문 중간에 업로드할 이미지를 추가하는 방법 : @@이미지이름@@
ex) @@foo.gif@@
 ★ 글 지우기 항목입니다. 한번 더 생각하시고 결정하십시오.!!!
제목 279 : [misc] 항성 적경값으로 개략적인 자정 남중날짜 계산
 이름  산이 [홈]http://linuxchannel.net/
[misc] 항성 적경값으로 개략적인 자정 남중날짜 계산

적경 날짜 남중날짜
0 3.21 9.21 // 추분
6 6.22 12.22 // 동지
12 9.21 3.21 // 춘분
18 12.22 6.22 // 하지


예) 적경 약 19h 항성의 자정 남중날짜는?

- 적경에서 날짜 offset = 적경/2 + 3개월 21일
- 남중날짜 offset = offset + 6개월

따라서
- 적경/2 + 9개월 + 21일 // 13보다 크면 -12개월
또는
- 적경/2 + 10월 -7일 // 13보다 크면 -12, 1보다 작으면 +12 개월 더해줌
또는
- 적경/2 - 2월 -7일 // 1보다 작으면 +12 개월 더해줌

만약 계산된 값이 또는 계산된 값이
19/2 - 2 = 7.5 (7월 중순)

따라서 7월 중순에서 7일을 빼주면 7월 8일 자정즈음에 이 별은 남중함

<?php
function dms2deg($dms)
{
if(!is_array($dms) && preg_match('/^[\d.+-]+$/',$dms)) return sprintf('%.4f',$dms);

if(is_array($dms)) $dms = implode(' ',$dms); // to string

$dms = preg_replace('/[^\d.+-]+/',' ',$dms);
list($d,$m,$s) = preg_split('/\s+/',$dms);

if(preg_match('/^-/',$d)) $deg = sprintf('%.4f',$d-$m/60-$s/3600); // -0 to < 0
else $deg = sprintf('%.4f',$d+$m/60+$s/3600);

return $deg;
}

function ra2middate($ra)
{
$ra = dms2deg($ra); // match h to d
$sec = $ra/24.0 * 365.24160 * 86400; // to seconds
$sec += 22723200; // gmmktime(0,0,0,9,21,1970);

return gmdate('n.d',$sec);
}

$f = file('ra.txt');

foreach($f AS $v)
{
if(!$v = trim($v)) continue;
list($m,$ra) = preg_split('/\s+/',$v);
if($ra == '') contine;

$m = preg_replace('/[^\d]+/','',$m);
$r[$m] = ra2middate($ra);
}
ksort($r);
foreach($r AS $k=>$v)
{
printf("%d\t%s\n",$k,$v);
}
?>
2011년 12월 02일 20:33:12 금(저녁)  from 211.212.225.115
0
암호: 공용 보안 SSL 서버가 준비되기 전까지는 off 합니다

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

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