'태양'에 해당되는 글 10건

  1. 2008.11.13 3음3양 (1)
  2. 2008.10.27 3음3양, 육기, 표본 (1)
  3. 2008.09.12 삼음삼양에 대해?
  4. 2008.07.22 [토론] 세수?
  5. 2008.07.07 24절기 근사식
  6. 2008.07.07 절기, 태양의 위치 계산
  7. 2008.05.10 3음3양, 6기, 6효, 8괘 (1)
  8. 2008.05.10 3음3양
  9. 2008.05.03 3음3양, 6기, 표본
  10. 2008.04.08 3.3.2. 3음3양(三陰三陽) (1)


제목: 질문있습니다. 글쓴이: 철천지무식 날짜: 2006.07.30. 03:10:36

4상이 3양3음으로, 오행이 6기로..

그런데 어떤 관계로 이 두가지가 붙어 궐음은 풍목이 되는것이고..

소음은 군화가 되는것인지..이러한 것들이 궁금합니다.

또한 상화라는 개념은 왜 들어가게 되는것인지..

그리고 궐음소음태음은 본중말의 공간으로

소양양명태양은 시중족의 시간으로 보는 것인지도 궁금합니다.

명쾌한 답변 부탁드립니다




제목: 3음3양 글쓴이: 안초 날짜: 2006.07.30. 07:24:51

우주의 근본은 북극성을 중심한 회전력입니다. 위 회전력에서 벗어날 수 있는 것은 아무 것도 없습니다. 문제는 위 회전력을 어떤 관점에서 어떻게 표현하는가만 남아 있을 것입니다. 위 관점의 표현에 따라 3음3양(시간), 9궁(공간) 등 여러 학문이 존재하게 되는 겁니다.

여기서는 질문이 3음3양인만큼 여기에 국한 시키겠습니다.

위 회전의 원동력에는 분명 음양이 있습니다. 상대적인 음양의 균형 없이 회전체가 성립할 수 없기 때문입니다. 그리고 위 음양은 다시 2차와 3차로 분화시킬 수 있는 있습니다. 少太라는 용어를 넣어 2차로 분화시키니 이것이 소음 태음 소양 태양의 4상입니다. 그리고 다시 궐음과 양명을 첨부시켜 3차로 분화시키니 (음)궐음, 소음, 태음, (양)소양, 양명, 태양의 3음3양입니다. 그런데 우리는 3차원 공간에 사는 만큼 실제적인 움직임은 3차로 분화된 3음3양(3D)이고, 그 내면에 존재하는 이치가 2차로 분화된 4상(2D)이 됩니다.

따라서 위 3음3양은 여러 현상의 내면에 존재하는 가장 근본 된 이치입니다. 여기까지 이해되시는지 모르겠습니다. 사실 어려운 것은 아닌데 얼마나 현실감을 느낄 수 있는가는 전적으로 자신의 몫입니다.

위 3음3양은 근본이치인 만큼 6기, 12지지 등 또 다시 여러 분야에 적용하게 됩니다.

특히 3양3양은 5행과 결합시켜 6기를 설명하는 근본이치이니 그 중요성은 아무리 강조해도 지나치지 않습니다. 위 3음3양을 6기에 배당하니 궐음풍목, 소음군화, 태음습토, 소양상화, 양명조금, 태양한수입니다. 여기서 가만히 살피면 상화만 다를 뿐 6기와 5행은 별 차이가 없다는 것을 알 수 있습니다. 따라서 상화가 바로 6기의 핵심인 만큼 상화만 이해할 수 있다면 6기를 이해하는 것이라고 할 수 있습니다. 상화는 태양 빛과 물(水)의 렌즈작용에 의해서 자체적으로 생기며 이것이 바로 생명을 만들어내는 기초 단위입니다.

이것을 본중말(공간,음) 시중종(시간,양)이라는 다른 이치로 설명할 수도 있으며 이것은 한동석의 우주변화원리에서 기인되었습니다.

2006.7.30. 안초


Posted by 무중 이승수 지지닷컴


제목: 삼음삼양, 육기, 표본 글쓴이: 김태현 날짜: 2005.12.31. 20:15:54

지지닷컴의 좋은 글 감사합니다.

삼음삼양과 육기의 차이를 알고 싶습니다.

그리고 이것을 표본으로도 구분하는 것 같은데 잘 이해가 안됩니다.

솔직히 내가 이해를 못하는 것인지 설명이 명료하지 못한 것인지 구분을 못합니다.

그리고 이것이 얼마나 중요한 것인지요.

새해 복 많이 받으시고, 미리 감사드립니다.




제목: re: 삼음삼양, 육기, 표본 글쓴이: 안초 날짜: 2006.01.01. 17:21:14

김태현님도 새해 복 많이 받으십시오.

동양학은 쉽고 단순하지, 결코 복잡하지 않습니다.

3음3양은 理의 이치이고, 6기는 氣의 현상입니다.

세상에는 無와 有가 있습니다. 즉 無는 0이라는 이치인데 이것이 3음3양이고, 有는 1-9라는 현상인데 이것이 6기입니다.

대우주는 理에 의해서 氣가 존재하고, 소우주는 氣에 의해서 理가 형성됩니다. 그래서 위 3음3양과 6기를 標本이라는 3D의 입체적 관점에서 바라볼 때 대우주는 3음3양이 本이 되고 6기가 標가 되며, 소우주는 3음3양이 標가 되고 6기가 本이 됩니다.(황제내경 운기학 천원기대론, 6원정기대론 참조)

이것은 동양학에서 세상만물의 중심을 설명하는 근본입니다. 한의학에서는 이것이 인체의 경락을 설명하는 기본이고, 술수학에서는 이것이 월률분야를 설명하는 기본이니, 그 중요성은 아무리 강조해도 지나치지 않습니다.

3음3양의 이치는 1음(궐음), 2음(소음), 3음(태음), 1양(소양), 2양(양명), 3양(태양)을 말합니다. 6기의 현상은 풍목, 군화, 습토, 상화, 조금, 한수를 말합니다. 이것은 결국 우주의 회전을 법칙을 말하는데 12지로는 사해, 자오, 축미, 인신, 묘유, 진술을 말합니다.

가장 기본으로 모든 동양학에 응용됩니다.

2006.1.1. 안초

Posted by 무중 이승수 지지닷컴


제목: 삼음삼양에 대해? 글쓴이: 예촌 날짜: 2005.02.22. 02:38:40

안녕하세요? 질문이 하나 있습니다.
삼음삼양에 대해 깊이 있는 내용은 차치하고, 먼저 글자 뜻도 잘 모르겠습니다. 특히 궐음에서 궐 자를 옥편에 찾아 보니 그 궐이라고만 나옵니다. 궐음이 도대체 무슨 뜻입니까? 또 삼음삼양을 순서대로 나열하면 어떻게 되나요?



제목: 궐(厥)의 의미 글쓴이: 안초 날짜: 2005.02.22. 10:14:39

안녕하십니까.

궐(厥)에는 우뚝 솟기 위한 잠재(潛)의 뜻이 있습니다. 참고로 고사리를 蕨이라고 하며, 잎이 나오기 이전의 잠재한 기의 잎을 먹습니다. 3음3양의 순서는 어렵지 않을 텐데요. 순서대로 나열하면 3음은 궐음, 소음, 태음, 3양은 소양, 양명, 태양입니다. 그리고 이것을 6기에 순서대로 배당하면 목화토화금수 즉 풍목, 군화, 습토, 상화, 조금, 한수가 됩니다.

도움이 되었으면 합니다. 좋은 하루 되십시오.

2005.2.22.
안초



제목: 그렇다면 글쓴이: 예촌 날짜: 2005.02.22. 12:52:58

궐음-소음-태음-소양-양명-태양 順이라면
궐음-소양, 소음-양명, 태음-태양 짝이 되어야 할 것 같은데
왜 12경락에서는
궐음경-소양경, 소음경-태양경, 태음경-양명경 짝으로 되어 있나요?




제목: re: 그렇다면 글쓴이: 김정겸 날짜: 2005.02.22. 14:20:28

☞ 예촌 님께서 남기신 글

>

>궐음-소음-태음-소양-양명-태양 順이라면

>궐음-소양, 소음-양명, 태음-태양 짝이 되어야 할 것 같은데

>왜 12경락에서는

>궐음경-소양경, 소음경-태양경, 태음경-양명경 짝으로 되어 있나요?



한의사로서 답변을 하고자 합니다.질문 사항은 경락을 질문하신 것으로 알고 있습니다.

삼음삼양을 이해하시고자 한다면 영추경을 봐야 하고 운기학을 공부해야 하는 전제 조건이 있습니다. 한의학에서 삼음삼양을 설명하는데는 29종의 해석 방법이 있다는 것을 일단 염두에 두고 이야길 하고자 합니다.

위의 배속 방법은 경락 수경과 족경의 표리관계일 때 해석하는 방법 중의 하나입니다.
삼음삼양의 배속은 개합추일 때와 상통일 때 동명경 일때가 배속이 다릅니다.이유는 삼음삼양이 가지고 있는 내재적 속성을 밝히고자하는 의미가 강합니다.

궐음-소양이 배속 되었을 때믄 경락적으로 의미가 있기 때문입니다.
즉, 궐음-풍목, 소양-상화 다시 말하면은 풍과 상화가 만나서 상화를 지향한다고 봐야 하며, 태음-습토, 양명-조금 즉 습과 조가 만나서 습을 지향합니다.

소음-군화, 태양- 한수가 만나면 한과 열을 지향하는데 이것은 결국 수승화강의논리가 숨어져 있다고 봐야 합니다. 이것에 대한 근거는 표본종화중기의 내용을참작하셔야 이해할 수 있는 부분입니다.

원하신면 상통적인 면은 다음에 쓰기로 하겠습니다.

Posted by 무중 이승수 지지닷컴


제목: 세수? 글쓴이: 정정희 날짜: 2003.05.24. 18:41:44

동지설과 입춘설이 있는데
진지한 토론에 붙여보고싶습니다.
子甲이 화하니....로 봐서는 동지설을 쓰는게 타당할것 같고요
현재는 입춘설을 쓰고있으니...



제목: re: 세수? 글쓴이: 공갈거사 날짜: 2003.05.25. 02:07:23

음... 제 생각에는... 각각의 입장에 따라 세수도 달라지는 것으로 보아야 할 것 같습니다. 天, 地, 人 각각의 관점에 따라 바뀌는 것이지요.

태양(天)의 관점으로 보면 당근 동지가 세수가 될 것 같구요.
支를 위주로 보면... 운기의 경우 대한이 세수가 되잖아요?
人의 입장에서는 인월이 세수가 되겠지요.
별의 입장에서는 亥월이 세수가 되는 것 같습니다.(天門地戶)
정역에는 卯월을 세수로 후천역법이 바뀐다고 하니... 참 가지가지 많기도 합니다.

에이~ 모르겠다. 안초님 정리해 줘요^^
음.. 제 생각은... 그러니까...어떤 관점이냐에 따라 세수를 결정하면 될 것이고.. 오직 하나의 세수로 결정할 이유는 없다는 것입니다.^^



제목: 관점 글쓴이: 안초 날짜: 2003.05.25. 12:01:42

공갈거사님!공부를 많이 하신 분이군요.
그렇습니다. 일단은 관점이 중요합니다.
내가 어떤 관점으로 볼 것이냐가 가장 중요합니다.
마치 과학의 양자론에서 동일한 에너지를 바라보는데...
운동량으로 보면 입자로 보이고, 속도로 보면 파동으로 보이는 것처럼...
관찰자 입장에 따라 전혀 다르게 보입니다. 그래서 동일한 운명을 바라보면서 기문, 6임, 태을, 4주가 전혀 다른 것입니다. 따라서 위 학문을 접목하고자 한다면, 일단 관점부터 이해해야 합니다.

위 관점이 우리 동양학의 가장 큰 특징이며, 위대한 점이라고 생각합니다. 왜냐하면 서양학은 양자론이후 이제야 비로소 관점을 깨닫고 있기 때문입니다. 물론 이것도 동양학의 영향에서 비롯된 것입니다.

정정희님! 안녕하십니까.

세수(歲首)에 대한 얘기이군요.
위에서 말씀하신 대로 세수가 동지냐, 입춘이냐?
한마디로 이것은 모두 세수입니다.

단, 어떤 학문의 세수가 무엇이냐 라는 화두가 타당하다고 생각합니다. 이것에 따라 세수가 결정되기 때문입니다.

예를 들어
주역은 건위천 金이며, 운기학은 갑기토 土며, 정역은 15일언의 土와 11일언의 木입니다. 기문은 동지의 甲이며, 4주는 입춘의 寅입니다. 왜 이렇게 되는지 그 이유를 밝힌다는 것은 그리 간단하지 않습니다. 위 학문의 전반을 이해해야 하기 때문입니다. 제가 예전에 세수에 대하여 써놓은 글이 있는데 못 찾겠네요. 찾는 데로 천문지리술수 게시판에 올리겠습니다. 참조하십시오.

화두를 꺼내주셔서 감사합니다.

2003.5.24.
편안한 돌! 안초올림~




제목: re: 관점 글쓴이: 정정희 날짜: 2003.05.30. 21:15:31

감사합니다.안초님
안초님께서"왜 이렇게 되는지 그 이유를 밝힌다는 것은 그리 간단하지 않습니다. 위 학문의 전반을 이해해야 하기 때문입니다."라고 말씀하셨는데요힘드 시더라도 이유를 심도있게 밝혀 주시기를 부탁 드립니다. 제 사견으로는 어떤 기준점이 세수라고 보기 때문입니다.




제목: 상화의 세수 글쓴이: 안초 날짜: 2003.05.31. 00:09:22

먼저 정정희님께 감사의 인사를 올려야 할 것이 있습니다.
이것은 역학동 명리마당에서 정정희님의 글을 퍼온 것입니다.

"어차피 태양과 지구와의 관계를 설정하는 학문이 명리학 아닐까요? 강약과 조후 격국 모두가 태양의 소식 아닙니까?"(이것 퍼오느라고 한참 헤맸네^^)

이 글을 대하면서 정말 깜짝 놀랐습니다.
정말 오랜만에 대하는 통쾌한 글입니다.

네! 그렇습니다. 태양의 소식이 바로 命입니다.

명리학의 근원을 살피면, 귀곡자와 낙녹자에서 비롯되었습니다.
낙녹자가 쓴 책이름이 바로 소식부입니다. 연해자평의 근간이 된 책입니다.
당근 소식이란 태양에서 내리는 소식 즉 命의 令입니다.

그러니까 명리학이란 태양의 이치를 따지는 학문이라고 할 수 있습니다. 태양의 이치는 크게 2분2지로 구분되는데, 이것이 바로 4시이며, 절기입니다. 그리고 이것을 인체에 적용했을 때 바로 시간의학입니다.(황제내경 소문참조/유전대체 게시판 시간의학이란? 참조)

자! 감사드리고, 이제는 본론으로 들어가겠습니다.
아마도 세수의 기준 점을 동지로 말씀하시려고 하는 모양입니다. 에구~ 끈질기기도 해라.^^ 동지와 입춘 중에서 曆의 세수를 고르라면 분명 동지입니다. 동지가 진정한 세수입니다. 사실 입춘이야 위 2분2지에도 들어가지 못하니 어찌 진정한 세수라고 할 수 있겠습니까.

제가 참조하실 글을 찾아 올린다고 해놓고 아직 그렇지요.
동지는 낮고 밤의 길이라 바뀌는 지점입니다. 즉 음양이 바뀌는 곳입니다. 그런데 동지는 우리 인간과 직접적인 관계에 있지 않습니다. 동지 이후에 새 봄이 오는 것도 아니고 소한 대한으로 겨울은 더욱 깊어지기만 갑니다. 동지는 기상과 별 관계가 없다는 말입니다. 차라리 입춘이라고 하면 정말 눈이 녹기 시작하고, 또 이른 곳은 목련이 피기도 합니다. 정말 인간입장에서는 동지보다 입춘이 훨씬 세수로 느껴지는 것이 당연합니다.

그러나 이것은 우리의 느낌이고...
학문적으로 입춘을 세수로 잡는 데는 相火라는 것 때문입니다. 위에서 이해하기 어렵다고 한 것이 바로 상화라는 개념 때문입니다.

잠깐 설명하면...
5행은 태양이 만들어 내는 기운입니다.(2분2지+토) 그러나 상화는 지구 자체에서 만들어 내는 또 다른 氣입니다. 위 5행과 相火를 합쳐서 6氣라고 하는데, 이것이 바로 생명을 만드는 것입니다. 개념 파악이 어려우면... 일단 위 5행의 火를 빛이라고 보시면 되고, 위 상화의 火는 열이라고 생각하셔도 됩니다. 그래서 모든 생명은 상화 즉 열을 가지고 있는 것입니다. (한동석의 우주변화원리 참조)

그리고 위 상화의 열이 시작되는 시기가 바로 寅월입니다. 이것은 상수적 개념에서 추론되는 것입니다. 따라서 생명입장에서 寅월을 세수로 보는 것입니다. 하지만 진정한 曆의 세수는 분명 동지입니다.

공부 많이 하신 분인데...
조금 헤 깔릴 수 있으니, 제 말에 논리가 있다고 생각되시면... 아~ 그런 것도 있나보다 하고 서서히 풀어 가십시오. 일단 상화라는 개념부터 깨닫는 것이 무엇보다 중요합니다. 명리학 수 십년 했다고 자랑하면서, 상화라는 용어를 들어보지도 못한 사람 많습니다. 결국 아무 것도 모르면서 자랑만 하는 것이지요. 문제는 이런 사람들이 함부로 가르친다는 것입니다.

만족한 답은 못되었으리라 생각됩니다.
그러나 앞으로 공부해야 할 向만 잡혔다면 저는 만족입니다.

2003.5.31.

편안한 돌! 안초올림~




제목: re: 상화의 세수 글쓴이: 정정희 날짜: 2003.05.31. 10:53:26

감사합니다
줄기차게 나를 괴롭혀 오던 문제들이 있었습니다.
기준이었습니다.
先聖께서도 술이부작 이라 하셨는데
그렇지만 변치 않음속에 변함이 있기 때문입니다.
기미가 있기 때문입니다.
근원에 대한 고찰과 많은 생각을 할수있어 좋습니다.
대전의 *** 입니다.


제목: 방황 글쓴이: 안초 날짜: 2003.05.31. 12:20:00

잘압니다.
지금의 이 학문은 위 방황없이 결코 나아갈 수 없습니다. 반대로 이것은 그만큼 지금의 학문은 엉터리라는 것입니다. 모순투성이 입니다. 조금만 생각하면 아는데, 그것조차 안 합니다.
근본부터 하지 않으면, 이 학문은 평생 모래성을 쌓는 것입니다.

어쨋든 고민하시는 분이 계시니 좋으네요.^^
부족하지만, 고민하시는 부분을 함께 나눌 수 있었으면 합니다.
안초올림

Posted by 무중 이승수 지지닷컴


<?php
##
## this file name is 'class.solar.php'
##
## solar object -- get sun position or 24 solar terms
##
## [author]
##  - Chilbong Kim, <san2(at)linuxchannel.net>
##  - http://linuxchannel.net/
##
## [changes]
##  - 2003.09.08 : bug fixed
##  - 2003.09.06 : new build
##
## [근사식에 대한 신뢰]
##  - 표준편차 : 1289.7736 = 21.5 minutes (standard deviation)
##  - 평균오차 : 817.57409541246 = 13.6 minutes
##  - 최대오차 : +4102.7340(68.4 minutes), -4347.2395(72.5 minutes)
##
## [근사식으로 계산한 24절기 실제 오차] 1902 ~ 2037 년
##  - 표준편차 : 1122.1921 = 18.7 분
##  - 평균오차 : +686.08382175161 = +11.4 분
##  - 최대오차 : +4297.252300024(71.6 분), -4278.048699975(71.3 분)
##  - 최소오차 : +0.16999998688698(0초)
##
## [근사식 + 년도 보정으로 계산한 24절기 실제 오차] 1902 ~ 2037 년
##  - 표준편차 : 450.8534 = 7.5 분
##  - 평균오차 : +305.38638890903 = 5.0 분
##  - 최대오차 : +3028.2343000174 = 50.5 분, -1982.9391000271 = 33.1 분
##  - 최소오차 : +0.0085000991821289 = 0 초
##
## [valid date]
##  - 1902.01.01 00:00:00 <= utime <= 2037.12.31 23:59:59
##
## [download & online source view]
##  - http://ftp.linuxchannel.net/devel/php_solar/
##
## [demo]
##  - http://linuxchannel.net/gaggle/solar.php
##
## [references]
##  - http://cgi.chollian.net/~kohyc/
##  - http://user.chollian.net/~kimdbin/
##  - http://user.chollian.net/~kimdbin/re/calendar.html
##  - http://user.chollian.net/~kimdbin/re/suncoord.html
##  - http://user.chollian.net/~kimdbin/qna/al138.html
##  - http://ruby.kisti.re.kr/~manse/contents-3.html
##  - http://ruby.kisti.re.kr/~anastro/sub_index.htm
##  - http://www-ph.postech.ac.kr/~obs/lecture/lec1/elementary/nakedeyb.htm
##  - http://ruby.kisti.re.kr/~anastro/calendar/etime/ETime.html
##  - http://www.sundu.co.kr/5-information/5-3/5f3-3-5-04earth-1.htm
##  - http://www-ph.postech.ac.kr/~obs/lecture/lec1/elementary/nakedeya.htm
##  - http://upgradename.com/calm.php
##  - http://aa.usno.navy.mil/faq/docs/SunApprox.html
##  - http://aa.usno.navy.mil/data/docs/JulianDate.html
##
## [usage]
##
## [example]
##  $sun = array();
##  $terms = solar::terms(date('Y'),1,12,&$sun);
##  print_r($terms);
##  print_r($sun);
##  print_r(solar::sun(time()));
##

class solar
{
  ## check solar terms in today or tomorrow
  ##
  function &solar($utime=0, $GMT=FALSE)
  {
 return solar::today($utime,$GMT);
  }

  function &today($utime=0, $GMT=FALSE)
  {
 if(func_num_args() < 1) $utime = time();
 if($GMT) $utime -= 32400;

 list($year,$moon,$moonday) = explode(' ',date('Y n nd',$utime));

 $terms = solar::terms($year,$moon,0);

 if($term = $terms[$moonday])
 {
  $str = '오늘은 <B>'.$term.'</B>입니다.';
 }
 else if($term = $terms[date('nd',$utime+86400)])
 {
  $str = '내일은 <B>'.$term.'</B>입니다.';
 }

 return $str;
  }

  ## get sun position at unix timestamp
  ##
  ## [limit]
  ##  - mktime(0,0,0,1,1,1902) < $utime < mktime(23,59,59,12,31,2037)
  ##
  ## [study]
  ##  - w = 23.436
  ##  - tan RA = (sin L * cos w - tan e * sin w ) / cos L
  ##  - sin d = (sin e * cos w) + (cos e * sin w * sin L)
  ##
  ## [example]
  ##  - print_r(solar::sun(mktime(  10,0,0,3,21,2003)  ));
  ##  - print_r(solar::sun(mktime(10-9,0,0,3,21,2003),1)); // same as
  ##
  function &sun($utime, $GMT=FALSE)
  {
 static $L=0, $D = 0, $JD = 0;
 static $deg2rad = array();

 if($utime<-2145947400 || $utime>2145884399)
 {
  echo "\n".'error: invalid input '.$utime.
  ', 1902.01.01 00:00:00 <= utime <= 2037.12.31 23:59:59'."\n";
  return -1;
 }

 list($L,$atime) = solar::sunl($utime,$GMT,&$D,&$JD,&$deg2rad);

 ## Sun's ecliptic, in degress
 ##
 $e = sprintf('%.10f',23.439 - (0.00000036*$D)); // degress

 $cosg = cos($deg2rad['g']); // degress
 $cos2g = cos($deg2rad['2g']); // degress

 ## R == AU (sun ~ earth)
 ## The distance of the Sun from the Earth, R, in astronomical units (AU)
 ##
 $R = sprintf('%.10f',1.00014 - (0.01671*$cosg) - (0.00014*$cos2g));

 ## convert
 ##
 $deg2rad['e'] = deg2rad($e); // radian
 $deg2rad['L'] = deg2rad($L); // radian

 $cose = cos($deg2rad['e']); // degress
 $sinL = sin($deg2rad['L']); // degress
 $cosL = cos($deg2rad['L']); // degress
 $sine = sin($deg2rad['e']); // degress

 ## the Sun's right ascension, RA, and declination, d
  ##
 $tanRA = sprintf('%.10f',$cose * $sinL / $cosL); // degress
 $sind = sprintf('%.10f',$sine * $sinL); // degress

 //$RA = sprintf('%.10f',rad2deg(atan($tanRA))+180);
 $RA = sprintf('%.10f',rad2deg(atan($tanRA)));
 $RA = solar::deg2valid($RA);
 $d = sprintf('%.10f',rad2deg(asin($sind))); // Sun's declination, degress

 $solartime = solar::deg2solartime($L);
 $daytime = solar::deg2daytime($RA);

 //if(!($L1=round($L) % 15))
 //{
 // $idx = $L1 / 15;
 // list($hterms) = solar::gterms();
 //}

 ## all base degress or decimal
 ##
  return array
 (
 'JD' => $JD, /*** Julian Date ***/
 'L'  => $L, /*** Sun's geocentric apparent ecliptic longitude ***/
 'e'  => $e, /*** Sun's ecliptic ***/
 'R'  => $R, /*** Sun from the Earth, astronomical units (AU) ***/
 'RA' => $RA, /*** Sun's right ascension ***/
 'd'  => $d, /*** Sun's declination ***/
 'stime'  => $solartime,  /*** solar time ***/
 'dtime'  => $daytime,  /*** day time ***/
 'atime'  => $atime,  /*** append time for integer degress **/
 'utime'  => $utime,  /*** unix timestamp ***/
 'date'   => date('D, d M Y H:i:s T',$utime), /*** KST date ***/
 'gmdate' => gmdate('D, d M Y H:i:s T',$utime), /*** GMT date ***/
 '_L'  => solar::deg2angle($L),
 '_e'  => solar::deg2angle($e,1),
 '_RA' => solar::deg2angle($RA),
 '_d'  => solar::deg2angle($d,1),
 '_stime' => solar::time2htime($solartime),
 '_dtime' => solar::time2htime($daytime),
 '_atime' => solar::time2htime($atime,TRUE),
 );
  }

  function &sunl($utime, $GMT=FALSE, $D=0, $JD=0, $deg2rad=array())
  {
 if($GMT) $utime += 32400; // GMT to KST

 ## D -- get the number of days from base JD
 ## D = JD(Julian Date) - 2451545.0, base JD(J2000.0)
 ##
 ## base position (J2000.0), 2000-01-01 12:00:00, UT
 ## as   mktime(12,0,0-64,1,1,2000) == 946695536 unix timestamp at KST
 ## as gmmktime(12,0,0-64,1,1,2000) == 946727936 unix timestamp at GMT
 ##
 $D = $utime - 946727936; // number of time
 $D = sprintf('%.10f',$D/86400); // float, number of days
 $JD = sprintf('%.10f',$D+2451545.0); // float, Julian Date

 $g = sprintf('%.10f',357.529 + (0.98560028 * $D));
 $q = sprintf('%.10f',280.459 + (0.98564736 * $D));

 ## fixed
 ##
 $g = solar::deg2valid($g); // to valid degress
 $q = solar::deg2valid($q); // to valid degress

 ## convert
 ##
 $deg2rad = array();
 $deg2rad['g'] = deg2rad($g); // radian
 $deg2rad['2g'] = deg2rad($g*2); // radian

 $sing = sin($deg2rad['g']); // degress
 $sin2g = sin($deg2rad['2g']); // degress

 ## L is an approximation to the Sun's geocentric apparent ecliptic longitude
 ##
 $L = sprintf('%.10f',$q + (1.915 * $sing) + (0.020*$sin2g));
 $L = solar::deg2valid($L); // degress
 $atime = solar::deg2solartime(round($L)-$L); // float

 return array($L,$atime); // array, float degress, float seconds
  }

  /***
  function &sinl($f, $v)
  {
 return sin(deg2rad($f+$v));
  }

  ## http://linux-sarang.net/board/?p=read&table=qa&no=198189
  ## -2 < sin x < + 2
  ## sin (77 + L) ==> (77 + L - 1.915 sin (77 + L))
  ##
  function &l2d($L)
  {
 $L = (int)$L; // 0 <= $L <= 345
 //$sinl  = sin(deg2rad(77+$L));
 $sinl = solar::sinl($L,77);
 //$sinl = solar::sinl($L-(1.915)*$sinl,77);

 //$sin2l = sin(deg2rad(154+($L*2)));
 $sin2l = solar::sinl($L*2,154);
 $sin2l = solar::sinl($L-(0.020*$L*2*$sin2l),154);
 $sin2l = solar::sinl($L-(0.020*$L*2*$sin2l),154);

 $D = sprintf('%.10f',
  ($L - 280.459 - (1.915 * $sinl) - (0.020 * $sin2l)) / 0.98564736);

 return $D; // float
  }

  function &l2jd($L)
  {
 $D  = solar::l2d($L);
 $JD = sprintf('%.10f',$D+2451545.0);
 //$JD = $JD + ($i * 360 / 0.98564736)

 return $JD; // float
  }

  function &l2utime($year, $L, $GMT=FLASE)
  {
 $i = (int)$year - 2000 + 1;
 $D = solar::l2d($L);

 $utime = ($D * 86400) + 946727936 + (31556925.216 * $i);
 $utime = round($utime);

 return $utime - ($GMT ? 32400 : 0); // integer
  }
  ***/

  ## 1 hour == 15 degress
  ## 1 degress == 4 minute == 240 seconds
  ##
  function &deg2daytime($deg)
  {
 return sprintf('%.4f',$deg*240); // seconds
  }

  ## 1 solar year == 365.242190 days == 31556925.216 seconds
  ## 1 degress == 31556925.216 seconds / 360 degress == 87658.1256 seconds
  ##
  function &deg2solartime($deg)
  {
 return sprintf('%.4f',$deg*87658.1256); // seconds
  }

  function &deg2angle($deg, $singed=FALSE)
  {
 if($singed) $singed = '+';
 if($deg <0) { $singed = '-'; $deg = abs($deg); }

 $time = sprintf('%.4f',$deg*3600);
 $degr = (int)$deg.chr(161).chr(198); //sprintf('%d',$deg);
 $time = sprintf('%.4f',$time-($degr*3600)); // fmod
 $mins = sprintf('%02d',$time/60).chr(161).chr(199);
 $secs = sprintf('%.4f',$time-($mins*60)).chr(161).chr(200); // fmod

 return $singed.$degr.$mins.$secs;
  }

  function &deg2valid($deg)
  {
 if($deg <= 360 && $deg >=0) return $deg;

 while($deg > 360) $deg = sprintf('%.10f',$deg - 360);
 while($deg <   0) $deg = sprintf('%.10f',$deg + 360);

 return (float)$deg; // float degress
  }

  function &moon2valid($moon)
  {
 //$moon = max($moon,1);
 //$moon = min($moon,12);

 if($moon < 1) $moon = 1;
 else if($moon > 12) $moon = 12;

 return (int)$moon;
  }

  function &time2htime($time, $singed=FALSE)
  {
 if($singed) $singed = '+';
 if($time<0) { $singed = '-'; $time = abs($time); }

 $days = (int)($time/86400); //sprintf('%03d',$time/86400);
 $time = sprintf('%.4f',$time-($days*86400)); // fmod
 $hour = sprintf('%02d',$time/3600);
 $time = sprintf('%.4f',$time-($hour*3600)); // fmod
 $mins = sprintf('%02d',$time/60);
 $secs = sprintf('%.4f',$time-($mins*60)); // fmod

 return $singed.$days.' '.$hour.' '.$mins.' '.$secs;
  }

  function &gterms()
  {
 ## mktime(7+9,36,19-64,3,20,2000), 2000-03-20 16:35:15(KST)
 ##
 if(!defined('__SOLAR_START__'))
 {
  define('__SOLAR_START__',953537715); // start base unix timestamp
  define('__SOLAR_TYEAR__',31556940); // tropicalyear to seconds
  define('__SOLAR_BYEAR__',2000); // start base year
 }

 $hterms = array
 (
  '소한','대한','입춘','우수','경칩','춘분','청명','곡우',
  '입하','소만','망종','하지','소서','대서','입추','처서',
  '백로','추분','한로','상강','입동','소설','대설','동지'
 );

 $tterms = array
 (
  -6418939, -5146737, -3871136, -2589569, -1299777,        0,
   1310827,  2633103,  3966413,  5309605,  6660762,  8017383,
   9376511, 10735018, 12089855, 13438199, 14777792, 16107008,
  17424841, 18731368, 20027093, 21313452, 22592403, 23866369
 );

 return array($hterms,$tterms);
  }

  function &tterms($year)
  {
 $addstime = array
 (
  1902=> 1545, 1903=> 1734, 1904=> 1740, 1906=>  475, 1907=>  432,
  1908=>  480, 1909=>  462, 1915=> -370, 1916=> -332, 1918=> -335,
  1919=> -263, 1925=>  340, 1927=>  344, 1928=> 2133, 1929=> 2112,
  1930=> 2100, 1931=> 1858, 1936=> -400, 1937=> -400, 1938=> -342,
  1939=> -300, 1944=>  365, 1945=>  380, 1946=>  400, 1947=>  200,
  1948=>  244, 1953=> -266, 1954=> 2600, 1955=> 3168, 1956=> 3218,
  1957=> 3366, 1958=> 3300, 1959=> 3483, 1960=> 2386, 1961=> 3015,
  1962=> 2090, 1963=> 2090, 1964=> 2264, 1965=> 2370, 1966=> 2185,
  1967=> 2144, 1968=> 1526, 1971=> -393, 1972=> -430, 1973=> -445,
  1974=> -543, 1975=> -393, 1980=>  300, 1981=>  490, 1982=>  400,
  1983=>  445, 1984=>  393, 1987=>-1530, 1988=>-1600, 1990=> -362,
  1991=> -366, 1992=> -400, 1993=> -449, 1994=> -321, 1995=> -344,
  1999=>  356, 2000=>  480, 2001=>  483, 2002=>  504, 2003=>  294,
  2007=> -206, 2008=> -314, 2009=> -466, 2010=> -416, 2011=> -457,
  2012=> -313, 2018=>  347, 2020=>  257, 2021=>  351, 2022=>  159,
  2023=>  177, 2026=> -134, 2027=> -340, 2028=> -382, 2029=> -320,
  2030=> -470, 2031=> -370, 2032=> -373, 2036=>  349, 2037=>  523,
 );

 $addttime = array
 (
  1919=> array(14=>-160), 1939=> array(10=> -508),
  1953=> array( 0=> 220), 1954=> array( 1=>-2973),
  1982=> array(18=> 241), 1988=> array(13=>-2455),
  2013=> array( 6=> 356), 2031=> array(20=>  411),
  2023=> array( 0=>  399, 11=>-571),
 );

 return array($addstime[$year],$addttime[$year]);
  }

  ## get the 24 solar terms, 1902 ~ 2037
  ##
  ## [usage]
  ##  - array solar::terms(int year [, int smoon [, int length [, array &sun]]] )
  ##
  function &terms($year=0, $smoon=1, $length=12, $sun=array())
  {
 $year  = (int)$year;
 $sun = array();
 $smoon = (int)$smoon;
 $length = (int)$length;
 $times = array();

 if(!$year) $year = date('Y');
 if($year<1902 || $year>2037)
 {
  echo "\n".'error: invalid input '.$year.
  ', 1902 <= year <= 2037'."\n";
  return -1;
 }

 list($hterms,$tterms) = solar::gterms();
 list($addstime,$addttime) = solar::tterms($year);

 ## mktime(7+9,36,19-64,3,20,2000), 2000-03-20 16:35:15(KST)
 ##
 $start = __SOLAR_START__; // start base unix timestamp
 $tyear = __SOLAR_TYEAR__; // tropicalyear to seconds
 $byear = __SOLAR_BYEAR__; // start base year

 $start += ($year - $byear) * $tyear;

 if($length < -12) $length = -12;
 else if($length > 12) $length = 12;

 $smoon = solar::moon2valid($smoon);
 $emoon = solar::moon2valid($smoon+$length);

 $sidx =  (min($smoon,$emoon) - 1) * 2;
 $eidx = ((max($smoon,$emoon) - 1) * 2) + 1;

 for($i=$sidx; $i<=$eidx; $i++)
 {
  $time = $start + $tterms[$i];
  list(,$atime) = solar::sunl($time,FALSE);
  $time += $atime + $addstime + $addttime[$i]; // re-fixed
  $terms[date('nd',$time)] = &$hterms[$i];
  $times[] = $time; // fixed utime
 }

 ## for detail information
 ##
 if(func_num_args() > 3)
 {
  $i = $sidx;
  foreach($times AS $time)
  {
   $sun[$i] = solar::sun($time,FALSE);
   $sun[$i]['_avgdate'] =
    gmdate('D, d M Y H:i:s T',$start+$tterms[$i]);
   $sun[$i]['_name'] = &$hterms[$i];
   $i++;
  }
 }

 unset($times);

 return $terms; // array
  }
} // end of class

/*** example ***
$sun = array();
$terms = solar::terms(date('Y'),1,12,&$sun);
print_r($terms);
print_r($sun);
print_r(solar::sun(time()));
echo solar::today()."\n";
echo solar::solar(mktime(0,0,0,3,20))."\n";
echo solar::solar(mktime(0,0,0,3,21))."\n";
echo solar::solar(mktime(0,0,0,3,22))."\n";
echo "\n\n";
print_r(solar::terms(2023));
***/
?>


<?php
##
## array sort test

##########################################

require_once '_lib/class.solar.ph';

echo "<P><H2>24 절기 - 24 solar terms</H2>\n";

if($_GET['view'])
{
echo "<A HREF='$_SERVER[PHP_SELF]'>소스닫기</A><HR>\n";
highlight_file(basename($_SERVER[PHP_SELF]));
return;
}

echo "<A HREF='$_SERVER[PHP_SELF]?view=1'>소스보기</A><HR>\n";

echo '<PRE>'."\n";
?>

solar object -- get sun position or 24 solar terms

[author]
- Chilbong Kim, < san2(at)linuxchannel.net >
- http://linuxchannel.net/

[근사식에 대한 신뢰] 1902 ~ 2000 년
- 표준편차 : 1289.7736 = 21.5 분
- 평균오차 : +817.57409541246 = +13.6 분
- 최대오차 : +4102.7340(68.4 분), -4347.2395(72.5 분)

[근사식으로 계산한 24절기 실제 오차] 1902 ~ 2037 년
- 표준편차 : 1122.1921 = 18.7 분
- 평균오차 : +686.08382175161 = +11.4 분
- 최대오차 : +4297.252300024(71.6 분), -4278.048699975(71.3 분)
- 최소오차 : +0.16999998688698(0초)

[근사식 + 년도 보정으로 계산한 24절기 실제 오차] 1902 ~ 2037 년
- 표준편차 : 450.8534 = 7.5 분
- 평균오차 : +305.38638890903 = 5.0 분
- 최대오차 : +3028.2343000174 = 50.5 분, -1982.9391000271 = 33.1 분
- 최소오차 : +0.0085000991821289 = 0 초

<?php
list($year,$moon) = preg_split('/\s+/',date('Y n'));
$today  = solar::today();
$tmoon  = solar::terms($year,$moon,0);
$sun    = solar::sun(time());
$suns   = array();
$tterms = solar::terms($year,1,12,&$suns);

echo '<H3>년도 : '.$year.' 년</H3><P>'."\n";
echo '오늘 : '.$today.'<P>'."\n";
echo '이번달 : '.$year.' 년 '.$moon.' 월'."\n";
print_r($tmoon);
echo "\n\n";
echo '현재시각의 태양의 위치: '."\n";
print_r($sun);
echo "\n\n";
print_r($tterms);
echo "\n\n";
print_r($suns);
echo '</PRE>'."\n";

?>

Posted by 무중 이승수 지지닷컴


글쓴이: 산이  [PHP] class of solar, 24 절기 계산과 태양의 위치 조회수:913
 http://linuxchannel.net/
 http://ftp.linuxchannel.net/devel/php_solar/
 http://linuxchannel.net/gaggle/solar.php

안녕하세요?
드디어 완성했습니다.
제가 천문학 전공이 아니라서 상당히 고전했습니다.
(다행히 제가 천문학 쪽에 관심이 많아서...^.9)

이 내용은 L-SN 과 phpschool.com 에 동일하게 포스팅합니다.

...

[PHP] class of solar, 24 절기 계산과 태양의 위치

[author]
 - Chilbong Kim, <san2(at)linuxchannel.net>
 - http://linuxchannel.net/

[changes]
 - 2003.09.08 : bug fixed
 - 2003.09.06 : new build

---------------------------------------------------------

0. 배경 및 개요
1. 24 절기 계산의 어려움(FAQ)
2. 어떻게 계산했나(계산방법)
3. PHP 클래스 사용법
4. 후기

---------------------------------------------------------


0. 배경 및 개요

배경은 생략합니다.

[근사식에 대한 신뢰]
 - 표준편차 : 1289.7736 = 21.5 minutes (standard deviation)
 - 평균오차 : 817.57409541246 = 13.6 minutes
 - 최대오차 : +4102.7340(68.4 minutes), -4347.2395(72.5 minutes)

[근사식으로 계산한 24절기 실제 오차] 1902 ~ 2037 년
 - 표준편차 : 1122.1921 = 18.7 분
 - 평균오차 : +686.08382175161 = +11.4 분
 - 최대오차 : +4297.252300024(71.6 분), -4278.048699975(71.3 분)
 - 최소오차 : +0.16999998688698(0초)

[근사식 + 년도 보정으로 계산한 24절기 실제 오차] 1902 ~ 2037 년
 - 표준편차 : 450.8534 = 7.5 분
 - 평균오차 : +305.38638890903 = 5.0 분
 - 최대오차 : +3028.2343000174 = 50.5 분, -1982.9391000271 = 33.1 분
 - 최소오차 : +0.0085000991821289 = 0 초

[valid date]
 - 1902.01.01 00:00:00 <= utime <= 2037.12.31 23:59:59

[download & online source view]
 - http://ftp.linuxchannel.net/devel/php_solar/

[demo]
 - http://linuxchannel.net/gaggle/solar.php

[references]
 - http://cgi.chollian.net/~kohyc/
 - http://user.chollian.net/~kimdbin/
 - http://user.chollian.net/~kimdbin/re/calendar.html
 - http://user.chollian.net/~kimdbin/re/suncoord.html
 - http://user.chollian.net/~kimdbin/qna/al138.html
 - http://ruby.kisti.re.kr/~manse/contents-3.html
 - http://ruby.kisti.re.kr/~anastro/sub_index.htm
 - http://www-ph.postech.ac.kr/~obs/lecture/lec1/elementary/nakedeyb.htm
 - http://ruby.kisti.re.kr/~anastro/calendar/etime/ETime.html
 - http://www.sundu.co.kr/5-information/5-3/5f3-3-5-04earth-1.htm
 - http://www-ph.postech.ac.kr/~obs/lecture/lec1/elementary/nakedeya.htm
 - http://upgradename.com/calm.php
 - http://aa.usno.navy.mil/faq/docs/SunApprox.html
 - http://aa.usno.navy.mil/data/docs/JulianDate.html


1. 24 절기 계산의 어려움(FAQ)

http://linuxchannel.net/board/read.php?table=qna&no=3984

>산이님 홈페이지에 있는 24절기를 붙이려고 하니(태극기 달기),
>매년 따로 배열로 넘기기가 좀 그래서 ...
>
>음력을 구하게 되니 음력에 따른 설날이나 추석도 구해지고,
>양력 국경일은 해당 일에 태극기가 달리면 되더군요.
>
>그런데 동지를 기준으로 매년 24절기를 구할려고 하는데,
>어떤식으로 해야할지 몰라서 질문해 봅니다.
>
>산이님이 php스쿨에 태극기 달기 팁에 몇분께서 동지를 이용해 매년
>24절기를 구하는 방식을 말씀해 주셨는데, 조금 이해가 안가서요.
>
>동지에 15.218425일 을 더하면 절기입기 시각이 구해진다는데,
>기준을 어떻게 잡아야 할지 몰라서 한번 질문해 봅니다.
>
>mysql 에서 동지에 위의 날짜를 더해가니 실제와 차이가 나더라구요.
>정확한 동지의 시작시간까지 알아야 하는 건가요?
>

-- 이하 답변 내용 -------------

24절기는 그렇게 간단하게 계산되질 않습니다. 아주 복잡합니다. 정확하게 계산하려면 천체역학이나 천체물리학을 따로 공부해야할 정도입니다. 아니면 고등학교 지구과학 이상의 수준을 요구합니다. 며칠동안(?) 24절기에 대해서 자료를 찾아보았습니다.

앞에서 동지에 15.218425 일을 더하면 절기입기일이 시작된다고 하는데 이것은 평기법으로 계산한 방법을 말합니다. 1태양년은 즉 1 회귀주기는 365.242190 일입니다. 이것은 태양이 춘분점을 지나서 다음 춘분점이 오기까지의 시간(거리간격)을 의미합니다.

그런데 또 세차운동(지구와 태양의 인력에 의한)에 의해서 춘분점이 서에서 동쪽으로 0.013972도씩 오차가 생긴다고 하네요. (정말 어렵죠...)

현재 달력(양력, '태양태음역'의 준말)은 그레고리역으로 365.2422 일을 기준으로 합니다. 그래도 오차가 있죠.

24절기이므로 24 등분하면, 즉 365.2422 / 24 == 15.218425 일됩니다. 옛날에는 동짓날이 가장 그림자가 길기 때문에 동짓날부터 더해서 계산했다고 하네요.(오차를 줄이기 위해서) 이렇게 계산한 방법을 평기법이라고 합니다. 현재는 평기법이 아닌 정기법을 사용합니다.

평기법과 정기법의 차이는 바로 표준태양일이냐 아니면 진태양일으로 그 기준을 하냐의 차입니다. (이하 '표준태양시', '진태양시') 먼저 표준태양시를 이해하기 앞서서 진태양시부터 이해해야합니다.

진태양시는 지구의 자전에 의해서 태양이 남중(자오선통과)해서 그 다음날 남중까지의 시간(거리)을 말합니다. 이 시간을 진태양시라고 합니다. ('진태양일')

이 시간은 절대적으로 24시간이 아닙니다. 즉 지구가 타원괘도를 그리면서 공전하기 때문에 각각 모두 다릅니다. 또한 공전속도도 일정한 등속이 아닌 제각기 다릅니다. 태양 근일점에서 가장 빠르고, 태양 원일점에서 가장 느립니다. 이 진태양시는 2월달에서 가장 짧고(대약 24시간-14분 정도), 11월 정도에서는 대략 24시간 +16분 정도 됩니다. 이렇게 들쑥날쑥한 태양일을 24시간으로 평균적으로 통일한 것이 바로 평균태양시입니다. 현재 우리가 사용하고 있는 하루나 달력은 모두 이 평균태양시를 기준으로 합니다. 평균태양시와 진태양시와의 차를 '균시차'라고 합니다.

앙부일귀(해시계)는 실제로 시간을 재는 기기가 아닌 시각, 즉 태양의 위치를 재는 기기이기 때문에 균시차를 적용해야 우리가 사용하는 시간이 나옵니다. 그런데 실제 24절기는 이 평균태양일에 기준하지 않습니다. 즉 진태양시에 맞추어 실제 태양의 위치를 설명하기 위한 하나의 방법입니다.

24절기는 1태양년을 24 등분할 때의 각 지점을 말하는데, 이것은 계절의 변화를 알기 위함입니다. (중국 화북(?)지방에서 농사일에 관련된 계절변화) 즉 태양의 위치는 알기위해서 절기를 사용했다는 점에서 양력을 말합니다. 즉 옛날에도 실제로 양력이 보조로 사용했다는 의미가 되죠. 그런데 또 여기에서 주의할 점은 1태양년을 24등분 할 때 그 기준이 무엇이냐  입니다. 천체역학에서는 춘분점에서 황도를 따라 15도씩 나눈다고 합니다.

이 말은 균등하게 360도 각을 15도씩 나눈다는 의미로 해석하면 안됩니다. 지구는 타원괘도를 그리면서 또한 일정지 않는 공전속도로 움직이기 때문에 각 15도씩 이동할 때마다 실제 걸리는 시간을 모두 다릅니다.

24 등분은 케플러의 '면적속도 일정의 법칙'에서 타원 퀘도 상의 동일한 24 면적 등분에 의한 각 기점을 말합니다. 이것 때문에 실제 24절기 계산이 어렵다는 것이죠. 즉 면적을 24등분했을 때 A 기점(절기)에서 B 기점(중기)으로 이동할 때 시간이 모두 다르다는 것입니다.
이해가 되었는지 모르겠네요.

솔직히 지구과학시간이나 천체역학 또는 천체물리학에서 언급하는 천체, 적도면, 위도, 경도, 적도좌표, 황도, 황도면, 황경, 황도좌표, 지평자표계, 고도, 방위도, 남중, 자오선, 케플러의법칙, 12궁도, 태양년, 표준태양시, 진태양시, 항성년, 항성일, 균시차, ??각, 춘분점, 세차운동, ... 지구시, 세계시, 지방시, 표준자오선(?), 지구시, 윤년, 평년, 윤달, 평달,...
등등 정말 상당히 많은 전문용어가 나옵니다...................................................

여기까지가 이론적인 내용이고,
실제로 PHP 로 코딩하려면, 상당히 복잡한 계산식이 나옵니다. 아직 적용해보질 않아서..
다행히 제가 생각하는 편법을 그대로 적용한 계산법이 있더군요, 즉 A 절기에서 B 절기로 가는 시간이 각각 다르므로 A-B 간의 시간을 모두 평균적으로 구해서 24개를 만들어 놓으면 어느 정도 계산이 된다는 알고리즘입니다.

이 방법은 편법이기 때문에 기준일로부터 멀어질수록 오차가 생긴다는 치명적인 단점이 있습니다. 하지만, 근 100년 전후라면 아주 작은 오차 안에서 비교적 정확하게 계산해 낼 수 있습니다.
http://user.chollian.net/~kimdbin/re/ki24_150.html

위의 URL은 24절기를 150년간 계산해놓은 절기표입니다.
시각(시간이 아님)은 KST, GMT 도 아닌 TT 라고 하는 지구시 단위입니다.
즉 위의 URL에 계산이 나옵니다만, 실제 KST 로 바꿀려면 TT - dT + 9h 으로 계산해 봐야합니다. (UT 는 세계시 = TT - dT를 의미하고, 평균태양(진태양이아님)이 그리니치
자오선을 통과(남중)할 때를 세계시 12시로 봄, 이때의 표준지방시인 GMT는 12시로 UT = GMT 임, 참고로 1925년 이전에는 0시로 계산했다고 함)

2003 67
[01]  1  5  18 28 48
[02]  1 20  11 53 39
[03]  2  4   6 06 25
[04]  2 19   2 01 17
[05]  3  6   0 05 57
[06]  3 21   1 00 50

2003년 춘분점에 대한 KST :

<?php
echo date('Y-m-d H:i:s',mktime(1+9,0,50-67,3,21,2003));
// 2003-03-21 09:59:43 KST
?>

실제 각 절기간의 간격은 굳지 +9h 를 더할 필요 없이 지구시의 간격으로 계산하면 됩니다. 어차피 dT(델타T)는 한 해 동안 모두 동일하므로 이것도 필요 없음) 그런데 각 절기간의 간격 평균은 '고영창'님이 미리 계산한 놓은 값을 이용하면 될 것 같네요.

  ('입춘','우수','경칩','춘분','청명','곡우','입하','소만',
   '망종','하지','소서','대서','입추','처서','백로','추분',
   '한로','상강','입동','소설','대설','동지','소한','대한','입춘');
  =
  (0,21355,42843,64498,86335,108366,130578,152958,
   175471,198077,220728,243370,265955,288432,310767,332928,
   354903,376685,398290,419736,441060,462295,483493,504693,525949);

1996년 입춘 일을 기준으로 각 절기간의 간격 누계를 분단위로 표시한 경우라고 하네요....

* 퀴즈1)
1태양년은 365.242190 일,
1항성년은 365.256360 일,
1평균태양일 = 24평균태양시 = 24시 3분 56.6초(항성시),
1항성일 = 23시 56분 4.1초(평균태양시)
이라고 한다면, 실제 지구는 1 태양년 동안 실제 몆 번을 자전할까요?

*퀴즈2)
2월이 짧고, 7월과 8월이 긴 까닭은?

2. 어떻게 계산했나(계산방법)
곧바로 계산이 어려우니깐 다음과 같은 편법을 사용했습니다.
1) 우선 고영창님이 계산한 알고리즘과 동일한 방법을 사용합니다.
   즉 지난 과거 1902 년부터 2000년까지의 절기에 대해서 1년 단위로
   각 절기간의 간격을 계산합니다. 기준점은 춘분점입니다.
   http://user.chollian.net/~kimdbin/re/equinox19002050.html

위의 URL은 김동빈이 계산한 실제(?) 24 절기 자료입니다. 지구시를 dT 까지 보정해서 실제 세계시로 환산하여 계산했습니다. 계산결과는 다음과 같습니다(춘분점 기준으로 1월부터 12월까지)
   $tterms = array
   (
 -6418939, -5146737, -3871136, -2589569, -1299777,        0,
  1310827,  2633103,  3966413,  5309605,  6660762,  8017383,
  9376511, 10735018, 12089855, 13438199, 14777792, 16107008,
 17424841, 18731368, 20027093, 21313452, 22592403, 23866369
    );

   위의 계산은 표준편차까지 적용한 평균값입니다.

2) 1)에서 구한 각 구간별 누계를 2000년 춘분점부터 계산합니다.
   2000년 춘분점은,
   mktime(7+9,36,19-64,3,20,2000), 2000-03-20 16:35:15(KST)
   = 953537715
   1 평균 태양년(tropicalyear) = 31556940 seconds

3) 1)과 2)에 의해서 각 절기 점의 태양의 시황경을 구합니다.
   시황경을 구하는 식은 근사식으로 다음과 같은 실제 오차가 있습니다.
   - 표준편차 : 1289.7736 = 21.5 minutes (standard deviation)
   - 평균오차 : 817.57409541246 = 13.6 minutes
   - 최대오차 : +4102.7340(68.4 minutes), -4347.2395(72.5 minutes)

근사식에 대한 설명은 http://user.chollian.net/~kimdbin/re/suncoord.html에 있습니다.
   (지구시 2000.0년을 기준으로 율리우스 적일을 통해서 계산)

4) 계산한 시황경 각도 보정 근사식에 대한 오차가 그리 크기 않기 때문에 충분한 신뢰가 갑니다. 따라서 계산한 시황경을 15 도 정수 단위의 끊어서 계산한 시황경에 대한 편차를 초단위로 계산합니다.
   예를들어, 계산한 시황경 L = 300.0039682710 이라면,
   1 solar year == 365.242190 days == 31556925.216 seconds
   1 degress == 31556925.216 seconds / 360 degress == 87658.1256 seconds
   이므로, -0.0039682710 * 87658.1256 = -347.8512 seconds 가 됩니다.
   이 편차를 1)의 평균 시간누계에 적용합니다.

   평균 누계시간을 이렇게 각도 보정을 하는 이유는 모두 동일하게 표준편차
   21.5 분 또는 평균오차 13.6 분 안으로 계산하기 위함입니다.

5) 4)까지 계산한 값을 실제 절기간과 비교하면,
   - 표준편차 : 1122.1921 = 18.7 분
   - 평균오차 : +686.08382175161 = +11.4 분
   - 최대오차 : +4297.252300024(71.6 분), -4278.048699975(71.3 분)
   - 최소오차 : +0.16999998688698(0초)
   가 됩니다.

오차 크기 않기 때문에 그대로 사용이 가능하나, 좀 문제가 있습니다. 즉 표준편차나 평균오차 안에 들더라도 이 시간대에서 날짜가 바뀌면 문제가 생깁니다. 따라서 1902 년부터 2037년까지 실제 24절기와 비교해서 표준편차가 큰 것들을 년도보정과 날짜 변경 보정을 해야 합니다. 계산된 양이 많기 때문에 본 class 의 tterms() 함수를 참고하길 바랍니다.

6) 5)번까지 계산한 결과를 실제 절기간과 비교하면,
   - 표준편차 : 450.8534 = 7.5 분
   - 평균오차 : +305.38638890903 = 5.0 분
   - 최대오차 : +3028.2343000174 = 50.5 분, -1982.9391000271 = 33.1 분
   - 최소오차 : +0.0085000991821289 = 0 초
   가 됩니다.

년도 보정과 날짜 보정까지 계산했기 때문에 틀린 날짜로 절기가 나오질 않습니다.

3. PHP 클래스 사용법
본 PHP class 에서 사용가능한 함수는 몇 개 되질 않습니다.
  (1) 특정 시각에 대한 태양의 위치 계산 :
  array solar::sun( int unix_timestamp [, boolean GMT ] )
  (2) 특정 년도-월에 대한 24절기 계산과 자세한 태양의 위치 계산 :
  array solar::terms(int year [, int smoon [, int length [, array &sun]]] )
  (3) 오늘 절기 체크 :
  string solar::today( [ int unix_timestamp [, boolean GMT]] );
  (4) 특정 시각에 대한 절기 체크 :
  string solar::solar( [ int unix_timestamp [, boolean GMT]] );

1) 특정 시각에 태양의 위치를 알아보려면 ?
  usage : array solar::sun( int unix_timestamp [, boolean GMT ] )

  예) 현재시각에 대한 태양의 위치
  $sun = solar::sun(time());
  print_r($sun);

  // 출력 결과
  Array
  (
    [JD] => 2452890.1381597221    <--- 율리우스 적일
    [L] => 164.5961639692         <--- 태양의 시황경
    [e] => 23.4385157503          <--- 태양의 황도 경사각
    [R] => 1.0077322215           <--- 천문단위
    [RA] => 345.8137140525        <--- 태양의 적경
    [d] => 6.0648783930           <--- 태양의 적위
    [stime] => 14428191.2145      <--- 시황경에 대한 1태양년 시간(초)
    [dtime] => 82995.2914         <--- 적경에 대한 1일 시간(초)
    [atime] => 35399.5095         <--- 정수단위 시황경에 대한 치우침 정도(초)
    [utime] => 1062947873         <--- 유닉스 타임스탬프
    [date] => Mon, 08 Sep 2003 00:17:53 KST
    [gmdate] => Sun, 07 Sep 2003 15:17:53 GMT
    [_L] => 164°35′46.1903″    <--- 시황경을 각도로 표시
    [_e] => +23°26′18.6567″    <--- 황도 경사각을 각도로 표시
    [_RA] => 345°48′49.3706″   <--- 적경을 각도로 표시
    [_d] => +6°03′53.5622″     <--- 적위를 각도를 표시
    [_stime] => 166 23 49 51.2145 <--- 시황경을 '일-시-분-초' 로 환산
    [_dtime] => 0 23 03 15.2914   <--- 적경을 '일-시-분-초' 로 환산
    [_atime] => +0 09 49 59.5095  <--- atime 을 '일-시-분-초' 로 환산
  )

  오차는 표준편차 21.5 분입니다.

보현산 천문대 http://www.kao.re.kr/~yukis/solsys0.html 에서 위의 계산된 값과 서로 비교해 보길 바랍니다. (적경 == _dtime, 적위 == _d, 거리(AU) == R)


2) 특정 년도의 24절기를 알아보려면 ?
  usage : array solar::terms(int year [, int smoon [, int length [, array &sun]]] )
  예) 올해의 24 절기
  $terms = solar::terms(date('Y'));
  print_r($terms);

  // 출력 결과(2003년임)
  Array
  (
    [106] => 소한
    [120] => 대한
    [204] => 입춘
    [219] => 우수
    [306] => 경칩
    [321] => 춘분
    [405] => 청명
    [420] => 곡우
    [506] => 입하
    [521] => 소만
    [606] => 망종
    [622] => 하지
    [707] => 소서
    [723] => 대서
    [808] => 입추
    [823] => 처서
    [908] => 백로
    [923] => 추분
    [1009] => 한로
    [1024] => 상강
    [1108] => 입동
    [1123] => 소설
    [1207] => 대설
    [1222] => 동지
  )

  년도별 24 절기는 http://user.chollian.net/~kimdbin/re/equinox19002050.html
  에 있으니 비교해 보길 바랍니다.

3) 현재 달의 절기를 알아보려면(자세한 태양의 위치까지) ?
  예) 현재 년도-월
  $detail = array();
  list($year,$moon) = explode(' ',date('Y n'));
  $terms = solar::terms($year,$moon,0,&$detail);
  print_r($terms);
  print_r($detail);

  // 출력 결과(2003년 9월임)
  Array
  (
    [908] => 백로
    [923] => 추분
  )

  Array
  (
    [16] => Array
        (
            [JD] => 2452890.5580993714
            [L] => 165.0037309275
            [e] => 23.4385155991
            [R] => 1.0076258056
            [RA] => 346.1917636517
            [d] => 5.9075765238
            [stime] => 14463917.7701
            [dtime] => 83086.0233
            [atime] => -327.0461
            [utime] => 1062984155.7857
            [date] => Mon, 08 Sep 2003 10:22:35 KST
            [gmdate] => Mon, 08 Sep 2003 01:22:35 GMT
            [_L] => 165°00′13.4313″
            [_e] => +23°26′18.6562″
            [_RA] => 346°11′30.3491″
            [_d] => +5°54′27.2755″
            [_stime] => 167 09 45 17.7701
            [_dtime] => 0 23 04 46.0233
            [_atime] => -0 00 05 27.0461
            [_avgdate] => Mon, 08 Sep 2003 01:58:47 GMT
            [_name] => 백로
        )

    [17] => Array
        (
            [JD] => 2452905.9491799828
            [L] => 180.0034831097
            [e] => 23.4385100583
            [R] => 1.0034920967
            [RA] => 0.0031957122
            [d] => -0.0013854578
            [stime] => 15778767.9309
            [dtime] => 0.7670
            [atime] => -305.3229
            [utime] => 1064313945.1505
            [date] => Tue, 23 Sep 2003 19:45:45 KST
            [gmdate] => Tue, 23 Sep 2003 10:45:45 GMT
            [_L] => 180°00′12.5392″
            [_e] => +23°26′18.6362″
            [_RA] => 0°00′11.5046″
            [_d] => -0°00′4.9876″
            [_stime] => 182 14 59 27.9309
            [_dtime] => 0 00 00 0.7670
            [_atime] => -0 00 05 5.3229
            [_avgdate] => Tue, 23 Sep 2003 11:12:23 GMT
            [_name] => 추분
        )
    )

4) 오늘이 절기에 해당되는 체크
  usage : string solar::today( [ int unix_timestamp [, boolean GMT]] );

  예)
  $today = solar::today();
  echo $today;

  // 출력 결과
  오늘은 < B >백로 < B >입니다

  오늘이 마침 백로이군요. 해당 요일이 절기에 포함되지 않으면 아무것도
  출력되질 않습니다.

5) 특정 날이 절기에 해당되는지 체크
  usage : string solar::solar( [ int unix_timestamp [, boolean GMT]] );
  (위의 solarr::today() 와 동일한 함수임) 

  예)
  $solar = solar::solar(mktime(0,0,0,3,21,2003));
  echo $solar;

4. 후기
제가 천문학 전공이 아니라서 계산하는데 상당히 어렵더군요. 특히 학부 때 공업수학을 두 번이나 F 받는 기억이... T.T 고등학교 졸업한지 15년 정도 되었는데, 다시는 그런 계산을 하지 않을 거라고 생각했는데, 고차방정식, 미분적분, 삼각함수, 호도법, 라디안, 통계, 오차론(?) 등등 고교수학이 상당히 비중을 차지하더군요.
어쨌든 제가 원하는 계산은 모두 끝냈습니다.

위의 PHP class 를 이용하여, 오늘 절기 체크, 현재시각에 대한 태양의 위치, 올해 절기와 상세한 태양의 위치 등등 계산하는데 약 0.05 초 정도 걸리더군요. (웹호스팅 웹서버에서)
http://linuxchannel.net/gaggle/solar.php
에 실시간 데모가 있습니다.

EOF

 -_- 주기 계산이 간단하게 되던가요??
그리고 주기랑 지구 시간을 맞춰서 정확하게 24절기를 구분해 낼 수 있나요??
실제 만세력과 비교해서 차이가 없나요??
쿨럭.. 질문만 많아서 죄송.. ㅠㅠ 09/07 10:17:29 
  
 산이 간단하게 계산되지 않습니다.
현재 우리가 사용하고 있는 시간이 평균태양시이기 때문이죠.
24절기는 진태양시를 기준으로 하고 있죠.
...

간단하게 계산방법을 소개하면,
1) 24절기 평균값을 편차보정(표준편차 이내에 든 것들에 대한 보정)
2) 1) 에서 구한 시간에 대한 태양의 시황경 계산
3) 2)에서 구한 시황경에 대한 보정(각도 보정)
4) 3)에서 구한 보정값을 1)에 편차 보정

이렇게 구한 값이 위의 [근사식으로 계산한 실제 오차] 입니다.
현재 오차를 더 줄이기 위해서, 특정 년도 보정과 특정 날짜 보정까지 작업중입니다.
비교기준은 보현산천문대에서 계산한 랜덤한 특정날짜와 비교했고, 김동빈 선생님이 계산한 24 절기가 기준입니다. (dT 까지 계산된)

실제 만세력 자료가 없어서 비교해 보질 않았습니다만 24절기에 기준 한다면 평균오차 10분까지 가능하더군요. 물론 1902년부터 약 2030년 까지..
문서가 작성되면 다시 올리지요. 09/07 18:30:45 
  
 -_- 크아..
정말 재미난 작업하시네요.. 기대하고 있겠습니다.. ^^a 09/07 19:35:15 
  
산이 고등학교 지구과학이나 천체물리 또는 천체 역학 쪽에 조금 지식이 필요합니다.
전 고등학교 지구과학 실력으로 .... ^.^ 방금 년도보정으로 1902 년부터 2037년까지 평균오차 5.5분 까지 계산해 냈습니다. 적용만 남았습니다. 09/07 20:25:26 
  
 산이 24절기 1902 ~ 2037 년까지,
- 표준편차 : 450.8534 = 7.5 분
- 평균오차 : +305.38638890903 = 5.0 분
- 최대오차 : +3028.2343000174 = 50.5 분, -1982.9391000271 = 33.1 분
- 최소오차 : +0.0085000991821289 = 0 초
까지 소스 적용 끝냈습니다. 09/07 22:10:56 
  
 배트 항상 최선을 다하시는 모습 정말 멋집니다. 감사합니다. 09/08 14:23:24 
☆~ - 최대오차 : +3028.2343000174 = 50.5 분, -1982.9391000271 = 33.1 분
저 부분 오타요~ ^^;; -33.1 분이죠? @_@a;; 09/08 19:41:46 
  
 ☆~ 흠 소스보니 아직 완전하게 않 만들어진듯하네요^^a 완성판이 기대되는군요 ^^
저도 지구과학에 관한거라면 관심이 많이 있어서 말이죠^^ 재미있게 잘보았습니다 +_+ 09/08 19:59:06 
  
 안지민 뭐.. 뭐.. -_- 뭐라캐쌌노? 09/09 15:36:46 
  
 산이 관심을 가져주어서 감사합니다.
...
To 절기님
천체역학이 아닌 PHP 에서 단순 절기를 구하는 데에 있어서 표준편차 7.5분이면 상당히 양호한 편입니다. 그러나 아주 정확한 정확도를 요구하는 업무에서는 위의 방법을
그대로 사용하면 안 됩니다. 표준편차 7.5분이면 엄청나게 큰 거죠... 따라서 아주 정확하게 계산된 값을 요구하지 않는 분야에 적용해야 합니다. 즉 날짜 보정까지 했으므로 1902년 부터 2037년까지의 절기일에 대한 오류는 없습니다. 그냥 간단하게 '절기일'을 알아보는데 사용하면 충분할겁니다. 09/17 22:22:20 
  
산이 To 절기님
김동빈 선생님 홈페이지에서 자료를 좀더 찾아보았습니다. 위의 '정확도 1분' 이 초단위 시간이라면 상당히 우수한 프로그램인 것 같습니다. 정확한 황경을 계산하기 위해서 40 페이지가 넘은 프로그램을 해야 한다고 하네요. 솔직히 PHP로 구현하기가 너무 벅차죠. 구현 알고리즘도 구하기 힘들고 그에 따른 기본적인 많은 지식이 더 필요하다고 하네요. 만약 위의 '1분이 시간각'이라면 초로 약 4분의 오차를 말합니다. 직접 알고리즘에 의해서 계산된 값이라면 URL을 알고 싶군요. 초단위 30초 또는 1분 이내의 절기를 원한다면 미리 계산된
값을 DB 에 집어넣고 꺼내오는 방법도 있습니다. (혹시 이런 방법이 아닌가 하는 ...)

[만세력 제작에 관한 글 - 절기계산]
http://211.57.134.129/~moon/cgi-bin/ast/CrazyWWWBoardLE.cgi?mode=read&num=81&db=almanac&backdepth=1

글쓴이: 최경민  글쓴날: 2003년 08월 18일 11:32:00 월(오전) 조회: 76
안녕하세요?
항상 사이트를 유용하게 이용하고 있습니다.
이번에 간단한 달력과 일정관리를 만들어보고 있는데, 여러분들의 소스를 보고 조금씩 붙여서 어느 정도 만들어 졌는데, 산이님 홈페이지에 있는 24절기를 붙이려고 하니(태극기 달기), 매년 따로 배열로 넘기기가 좀 그래서 ...

음력을 구하게 되니 음력에 따른 설날이나 추석도 구해지고, 양력 국경일은 해당 일에 태극기가 달리면 되더군요. 그런데 동지를 기준으로 매년 24절기를 구할려고 하는데, 어떤 식으로 해야할 지 몰라서 질문해 봅니다. 산이님이 php스쿨에 태극기 달기 팁에 몇 분께서 동지를 이용해 매년 24절기를 구하는 방식을 말씀해 주셨는데, 조금 이해가 안가서요. 동지에 15.218425일 을 더하면 절기입기 시각이 구해진다는데, 기준을 어떻게 잡아야 할지 몰라서 한번 질문해 봅니다. mysql 에서 동지에 위의 날짜를 더해가니 실제와 차이가 나더라구요. 정확한 동지의 시작시간까지 알아야 하는 건가요? 혹시 도움을 받을 수 있을까 해서 질문해 봅니다.

24절기는 그렇게 간단하게 계산되질 않습니다. 아주 복잡합니다. 정확하게 계산하려면 천체역학이나 천체물리학을 따로 공부해야할 정도입니다. 아니면 고등학교 지구과학 이상의 수준을 요구합니다. 며칠동안(?) 24절기에 대해서 자료를 찾아보았습니다.

앞에서 동지에 15.218425 일을 더하면 절기입기일이 시작된다고 하는데 이것은 평기법으로 계산한 방법을 말합니다. 1태양년은 즉 1 회귀주기는 365.242190 일입니다. 이것은 태양이 춘분점을 지나서 다음 춘분점이 오기까지의 시간(거리간격)을 의미합니다.

그런데 또 세차운동(지구와 태양의 인력에 의한)에 의해서 춘분점이 서에서 동쪽으로 0.013972도씩 오차가 생긴다고 하네요. (정말 어렵죠...)

현재 달력(양력, '태양태음역'의 준말)은 그레고리역으로 365.2422 일을 기준으로 합니다. 그래도 오차가 있죠.

24절기이므로  24 등분하면, 즉 365.2422 / 24 == 15.218425일 됩니다. 옛날에는 동짓날이 가장 그림자가 길기 때문에 동짓날부터 더해서 계산했다고 하네요.(오차를 줄이기 위해서) 이렇게 계산한 방법을 평기법이라고 합니다. 현재는 평기법이 아닌 정기법을 사용합니다.

평기법과 정기법의 차이는 바로 표준태양일이냐 아니면 진태양일으로 그 기준을 하냐의 차입니다. (이하 '표준태양시', '진태양시') 먼저 표준태양시를 이해하기 앞서서 진태양시부터 이해해야합니다.

진태양시는 지구의 자전에 의해서 태양이 남중(자오선통과)해서 그 다음날 남중까지의 시간(거리)을 말합니다. 이시간을 진태양시라고 합니다. ('진태양일') 이 시간은 절대적으로 24시간이 아닙니다. 즉 지구가 타원괘도를 그리면서 공전하기 때문에 각각 모두 다릅니다. 또한 공전속도도 일정한 등속이 아닌 제각기 다릅니다. 태양 근일점에서 가장 빠르고, 태양 원일점에서 가장 느립니다. 이 진태양시는 2월 달에서 가장 짧고(대약 24시간-14분 정도), 11월 정도에서는 대략 24시간 + 16분 정도 됩니다. 이렇게 들쑥날쑥한 태양일을 24시간으로 평균적으로 통일한 것이 바로 평균태양시입니다.

현재우리가 사용하고 있는 하루나 달력은 모두 이 평균태양시를 기준으로 합니다. 평균태양시와 진태양시와의 차를 '균시차'라고 합니다. 앙부일귀(해시계)는 실제로 시간을 재는 기기가 아닌 시각, 즉 태양의 위치를 재는 기기이기 때문에 균시차를 적용해야 우리가 사용하는
시간이 나옵니다.

그런데 실제 24절기는 이 평균태양일에 기준하지 않습니다. 즉 진태양시에 맞추어 실제 태양의 위치를 설명하기 위한 하나의 방법입니다. 24절기는 1태양년을 24 등분할 때의 각지점을 말하는데, 이것은 계절의 변화를 알기 위함입니다 (중국 화북(?)지방에서 농사일에 관련된 계절변화) 즉 태양의 위치는 알기위해서 절기를 사용했다는 점에서 양력을 말합니다. 즉 옛날에도 실제로 양력이 보조로 사용했다는 의미가 되죠.

그런데 또 여기에서 주의할 점은 1태양년을 24등분할 때 그 기준이 무엇이냐 입니다. 천체역학에서는 춘분점에서 황도를 따라 15도씩 나눈다고 합니다. 이 말은 균등하게 360 도각을 15도씩 나눈다는 의미로 해석하면 안 됩니다. 지구는 타원괘도를 그리면서 또한 일정지 않는 공전속도로 움직이기 때문에 각 15도씩 이동할 때마다 실제 걸리는 시간을 모두 다릅니다.

24 등분은 케플러의 '면적속도 일정의 법칙'에서 타원퀘도상의 동일한 24 면적 등분에 의한 각 기점을 말합니다. 이것 때문에 실제 24절기 계산이 어렵다는 것이죠. 즉 면적을 24등분했을 때 A 기점(절기)에서 B 기점(중기)으로 이동할 때 시간이 모두 다르다는 것입니다.
이해가 되었는지 모르겠네요.

솔직히 지구과학시간이나 천체역학 또는 천체물리학에서 언급하는 천체, 적도면, 위도, 경도, 적도좌표, 황도, 황도면, 황경, 황도좌표, 지평자표계, 고도, 방위도, 남중, 자오선, 케플러의법칙, 12궁도, 태양년, 표준태양시, 진태양시, 항성년, 항성일, 균시차, ??각, 춘분점, 세차운동, ... 지구시, 세계시, 지방시, 표준자오선(?), 지구시, 윤년, 평년, 윤달, 평달, 등등 정말 상당히 많은 전문용어가 나옵니다. .................................................

여기까지가 이론적인 내용이고,
실제로 PHP 로 코딩하려면, 상당히 복잡한 계산식이 나옵니다. 아직 적용해보질 않아서..
다행히 제가 생각하는 편법을 그대로 적용한 계산법이 있더군요,

즉 A 절기에서 B 절기로 가는 시간이 각각 다르므로 A-B 간의 시간을 모두 평균적으로 구해서 24개를 만들어 놓으면 어느 정도 계산이 된다는 알고리즘입니다. 이 방법은 편법이기 때문에 기준일로 부터 멀어질수록 오차가 생긴다는 치명적인 단점이 있습니다. 하지만, 근 100년 전후라면 아주 작은 오차 안에서 비교적 정확하게 계산해 낼 수 있습니다.

http://user.chollian.net/~kimdbin/re/ki24_150.html
위의 URL은 24절기를 150년간 계산해놓은 절기표입니다.

시각(시간이 아님)은 KST, GMT도 아닌 TT 라고 하는 지구시 단위입니다.
즉 위의 URL에 계산이 나옵니다만, 실제 KST로 바꿀려면 TT - dT + 9h 으로 계산해 봐야합니다. (UT는 세계시 = TT - dT를 의미하고, 평균태양(진태양이아님)이 그리니치 자오선을 통과(남중)할 때를 세계시 12시로 봄, 이때의 표준지방시인 GMT는 12시로 UT = GMT 임, 참고로 1925년 이전에는 0시로 계산했다고 함)

2003 67
[01]  1  5  18 28 48
[02]  1 20  11 53 39
[03]  2  4   6 06 25
[04]  2 19   2 01 17
[05]  3  6   0 05 57
[06]  3 21   1 00 50

2003년 춘분점에 대한 KST :

<?php
echo date('Y-m-d H:i:s',mktime(1+9,0,50-67,3,21,2003));
// 2003-03-21 09:59:43 KST
?>

실제 각 절기간의 간격은 굳지 +9h 를 더할 필요 없이 지구시의 간격으로 계산하면 됩니다. 어차피 dT(델타T)는 한 해 동안 모두 동일하므로 이것도 필요 없음)

그런데 각 절기간의 간격 평균은 '고영창'님이 미리 계산한 놓은 값을 이용하면 될 것 같네요.
  ('입춘','우수','경칩','춘분','청명','곡우','입하','소만',
   '망종','하지','소서','대서','입추','처서','백로','추분',
   '한로','상강','입동','소설','대설','동지','소한','대한','입춘');
  =
  (0,21355,42843,64498,86335,108366,130578,152958,
   175471,198077,220728,243370,265955,288432,310767,332928,
   354903,376685,398290,419736,441060,462295,483493,504693,525949);

1996년 입춘일을 기준으로 각 절기간의 간격 누계를 분단위로 표시한 경우라고 하네요.
아직 실제 PHP로 코딩해볼 질 않아서 넘겨줄 코드가 없네요.
시간이 되면 직접 코딩해서 알파문서 게시판에 올리도록 하지요...........
상당히 긴 글이네요....


아... 음력->양력, 양력->음력으로 변환하는 코드(함수)좀 볼수 있을 까요?
...........

* 퀴즈1)
1태양년은 365.242190 일,
1항성년은 365.256360 일,
1평균태양일 = 24평균태양시 = 24시 3분 56.6초(항성시),
1항성일 = 23시 56분 4.1초(평균태양시)
이라고 한다면, 실제 지구는 1 태양년 동안 실제 몇 번을 자전할까요?

*퀴즈2)
2월이 짧고, 7월과 8월이 긴 까닭은?

글쓴이: 최경민  글쓴날: 2003년 08월 20일 18:07:08 수(저녁) 조회: 117
정말 정성스런 답변 감사합니다. 이론적인 내용 솔직히 그냥 읽기만 하는데도 머리가 띵~합니다. 감사하단말 먼저 드리고 싶습니다. 솔직히 전 프로그램 짤 줄도 모르고, 남의 소스 배껴다가 얻어 쓰는 놈입니다. 아마 사람들이 제일 싫어하는 부류일겁니다. 그래도 어쩔 수 없이 그렇게 살아가고 있습니다.

먼저 양력->음력 변환 함수는 phpschool에서 검색했는데, 사용하기 편리해서 그 함수를 그대로 쓰고 있습니다. 아래 원본 글 주소입니다.

http://www.phpschool.com/bbs2/inc_view.html?id=7084&code=tnt2&start=0&mode=s
earch&field=body&search_name=&operator=and&period=all&category_id=&s_que=%C8%A3%C3%E2%B9%FD%
3A+soltolun%282002%2C01%2C11%29

그리고, 솔직히 제가 만든 달력은 남의 소스 얻어다가 누더기처럼 끼워 맞춘거라 보여드리기도 쪽 팔려서...ㅡㅡ;; 그런데, 산이님 본문에 있는 고영창이란분 홈페이지 보니 약간은 엽기적이더군요..ㅡㅡ;; 그리고, 링크된 김동빈씨의 홈페이지도 특이하네요 ^^

전 아주 단순(?)하고 좋던데요..
제가 고등학교때까지만 해도 천문학자가 되는게 꿈이었습니다. 결국 전공은 '도시공학'이지만요.. 그래서 아직도 천문, 천체 얘기만 나오면 관심이 많이 갑니다.

>============================================================
>혹시 제대로 읽어보지도 않았다고 하실지도 모르겠네요.
>워낙 무지해서 잘 모르겠더라구요.
>그래도 젤 아래에 적어주신 절기간
 간격 평균으로도 절기가
 구해지더군요.
>감사합니다. 방법은 적어주신 그대로 1996년 입춘일을 기준으로 반복문을 이용했더니
되었습니다.
>그런데,  '고영창'님이 미리 계산한 놓은 절기간의
 간격 평균은 어디에 있는지, 그분 홈에 갔는데, 잘 못찾겠더라구요.
>솔직히 맞게 된건지도 모르겠습니다.
>

http://cgi.chollian.net/~kohyc/calendar/s1221_6.txt

고영창님 홈페이지에 있습니다.
아니면 '진짜 만세력' 프로그램을 받으면 그 안에 PERL 소스로
있습니다.


>사용된 결과물도 보여드려야 하는데, 도저히 얼굴이 빨개져서 못보여드리겠습니다.
>감사합니다. 나중에 정리되면 제가 만든 일정관리 보여드릴께요...
>
>그리고, 퀴즈는...솔직히 잘 모르겠는데,
>문제를 보니 그안에 답이 있는것 같은데 공부도하고,
>윤달에 관해서 알아보라는 뜻이 계신것 같습니다.
>편리함에 길들여져서 인지....검색찬스를 썼습니다. ㅡㅡ;;
>
>* 퀴즈1)
>1태양년은 365.242190 일,
>1항성년은 365.256360 일,
>1평균태양일 = 24평균태양시 = 24시 3분 56.6초(항성시),
>1항성일 = 23시 56분 4.1초(평균태양시)
>이라고 한다면, 실제 지구는 1 태양년 동안 실제 몆번을 자전할까요?
>http://kin.naver.com/browse/db_detail.php?dir_id=110206&docid=96104
>
>맞는지 모르겠습니다. 솔직히 산수도 잘 몰라요.
>지구 자전주기: 23시간 56분 4초 ==>초로 환산 :86164초
>1태양년을 ==>초로 환산 : (365일*86400=31536000초)
 + (86400*0.242190일)=315569252.216초

>
>315569252.216 / 86164=366.24257481082 번( 약366번 인가?)
>모르겠습니다.
>

예, 위의 계산방법이 맞습니다.
실제 지구는 365.5 바뀌가 아닌 366 바뀌 조금 더 돌지요.
(실제 지구 자전속도가 조금씩 느려진다고 하네요..헙)

그런데 위의 계산은 검증(?)에 필요한 계산이고요,
실제로 이렇게 복잡(?)하게 계산하지 않아도 금방 알 수 있습니다.

즉 진태양일은 태양을 기준으로, 바꾸어 말하면 태양에서 지구를 봤을 때 도는 횟수를 말합니다. 우리가 달의 모습을 보는 것과 같은 원리이죠. 반면 항성일은 태양이 기준이 아닌 제3자의 입장에서 볼 때 실제 지구가 도는 횟수를 말합니다.

따라서 지구와 달의 관계를 생각하면 금방 알 수 있지요. 즉 달은 지구 둘레를 한번 공전할때 1번 자전하지요, 우리가 볼 때는(진태양일 기준) 자전하지 않는 것 처럼 보이지만 실제 제3자의 입장(항성일)에서 보면 시간이 지날수록 항상 다른 면을 보게 되지요, 즉 1번 공전할 때 1번 자전합니다. 따라서 365.5 에 +1 하면 실제 지구 자전회수가 됩니다.

달이 실제로 한번도 자전하지 않는다면 우리가 볼 때는 한번 자전하는 것처럼 보입니다. (자전거 패달이나 멧돌이 돌아가는 것을 생각하면됨)


>
>*퀴즈2)
>2월이 짧고, 7월과 8월이 긴 까닭은?
>답해주신 내용중에 있는 것 같네요.
>
>http://kin.naver.com/browse/db_detail.php?dir_id=6&docid=51385
>--------------------------------
>우리가 사용하고 있는 것은 동양에서 사용하던 음력이 아니라 서양에서 사용하던 양력입니다.

>다 아시는 내용이지만, 하루를 24시간으로 정하고,
>1년을 365일로 정했지만, 지구의 자전 속도와 공전 속도는 이렇든 정확하게 맞아 떨어지는 것이 아닙니다.
>동양에서는 1년을 360일로 치고, 각 달을 30일로 해서 사용을 했고,
>이렇게 했을 때 생기는 차이를 없애기 위해서 윤달이란 것이 생겼습니다.
>음력을 보시면 아시겠지만, 몇 년마다 윤 X월이란 것이 있습니다.
>양력에서는 이러한 현상을 없애기 위해서 생긴 것이 바로 2월 29일 입니다.
>
>즉, 일반적인 해에는 2월에 28일까지만 배치를 했다가 그 차이가 누적이 되면 한꺼번에 맞추기 위해서 하루를 더 만든 것입니다.
>
>그리고, 왜 2월 달만 짧은지를 물으셨는데, 반면 7월과 8월은 둘 다 31일씩 존재를 합니다.

>2월을 제외한 다른 달은 번갈아 가면서 30일과 31일이 있는데 유독 7월과 8월만 계속적으로 31일씩 있습니다.
>이는 양력의 기원이 로마에서 생겼기 때문입니다.
>달에 대한 호칭 중 7월과 8월은 로마의 초대 황제와 그 다음 황제의 이름을 따서 지었는데,

>초대 황제는 잘 아시는 율리우스 시저입니다. 그래서 생긴 것이 7월입니다.
>8월은 아우구스티누스의 이름을 따서 만든 것이구요.
>하지만, 원래대로라면 8월은 30일이 되어야 하는데,
>후세의 사람이 아우구스티누스의 업적에 맞지 않는다 생각해서 2월에서 하루를 빼어서 8월로 옮긴 것입니다.
>그런 후에 나머지를 다시 조정을 한 것이죠.
>------------------------------

맞게 찾으셨네요.

http://www-ph.postech.ac.kr/~obs/lecture/lec1/elementary/eqntime.gif
http://www-ph.postech.ac.kr/~obs/lecture/lec1/elementary/nakedeyb.htm

위의 그림을 보면, 2월 달에서 진태양시가 가장 짧습니다.
즉 하루길이가 가장 짧습니다.

실제 그레고리오역(우리가 사용하는 태양태음력)은 평균태양일이지만
진태양일에 어느 정도 맞추다 보니 2월을 짧게 할 수밖에 없습니다.

8월이 아우구스티누스의 생일이 있는 달이라고 하네요.
그래서 30일을 31로...

이런 퀴즈를 내는 이유는 바로 24절기와 관련이 있기 때문입니다. 위의 그림에서, 가로축의 24시간대를 직선으로 동일한 속도로 이동하는 것이 평균태일이고 우리가 사용하는 시간을 말합니다.

반면 진태양일은 곡선을 따라서 불규칙한 속도로 이동하는 것을 말합니다.(술취한 사람이 집을 찾아가는 것과 같은 원리?)

이 곡선에 24개의 점(절기)를 찍어야 하는데, 각지점의 속도가 다르므로 이 곡선에 직접 찍기는 어렵고, 황도곡선(?)을 그려야 합니다.(가능하는지 모르겠지만) 좀 어렵죠?.... 그것도 15도 간격으로 24개를 찍어야 하므로,,,
이것 말고 실제 황도좌표와 위의 그림을 기준으로 설명해야 하는데
제가 좀 실력이 못되어서...

Posted by 무중 이승수 지지닷컴


3음3양, 6기, 8괘, 6효

3양3음과 6기 용어를 정리해 보면...
3음은 궐음. 소음, 태음이고... 3양은 소양, 양명, 태양입니다.
6기는 풍목, 군화, 습토이고... 상화, 조금, 한수입니다.

그러나 6기의 기본원리가 3음3양이니 동일 개념(체용관계)이라고 할 수 있을 것입니다. 그래서 위 3음3양과 6기를 혼합하여 표현하면 궐음풍목, 소음군화, 태음습토, 소양상화, 양명조금, 태양한수가 됩니다.

그래서 아마도
궐음풍木을 巽괘, 소음군火를 離괘, 태음습土를 艮괘...
소양상火를 震괘, 양명조金을 兌괘, 태양한水를 坎괘...
에 배당한 듯합니다. 그런데 위 배당이 큰 의미가 있다고 생각하지는 않습니다. 6기는 8괘보다는 6효와 밀접한 관계가 있기 때문입니다.

자~ 여기서 괘와 효에 대하여 중요한 원리를 생각해 봅시다.

먼저 中이라는 것이 무엇인지 아시지요?
가운데입니다. 즉 음과 양이 마주치는 곳 그 가운데가 바로 中입니다. 마주치는 □에 가운데를 ㅣ로 표현한 中의 글자가 그렇지요. 참고로 中은 음양이 마주치는 곳이므로 음양을 측정할 수 없습니다.(不測) 또 위 음양이 화합하는 것을和라고(中和) 하며, 위 음양이 화합하지 못하는 것을 病이라고 합니다. (내경 참조/지금은 위 단순한개념 자체도 개판임)

위 음양이 화합하는 中의 모습(象)을 방위로 표현해 보면...
상하의 음양, 좌우의 음양, 그리고 그 사잇 방의 음양... 즉 8개의位(4방,사잇방)로위 中을 표현할 수 있습니다. 이것이 바로 卦입니다. 그리고 위와 같이 서로 바뀌는 것을 易이라고 합니다.

참고로 위 괘의 모습(象)은 크게 動할 때와 靜할 때로 구분할 수 있습니다. 즉 動의 모습을 그린 것이 문왕8괘이고, 靜의 모습을 그린 것이 복희8괘입니다. 卦라는것은 미래의 조짐을 알기 위해 표현하는 도구입니다. 따라서 靜은 큰 의미가 없고, 動하는 모습을 문왕8괘로 상탕(섞어서)하여 표현한 것이 주역입니다.

위 음양의 화합하는 中의 움직임(數)을 변화로 표현해 보면...

기준되는 음양의 축이 있어야 할 것이고, 나머지 6개(2쌍x3)로 方의움직임을표현하게 됩니다. 그래서 건곤은 제외(존공)되고, 그 대행자인 감리를 중심으로, 진손, 간태의 움직임을 표현하는데, 그 움직임 자체를 6爻라고 합니다. xx를 상하로 표현하고 있는 爻의 글자를 보아도 그렇지요.

참고로 위 中을 공간적인 位의 象으로 표현한 것이 8괘이며, 시간적인 方의 數로표현한 것이 6효입니다. 그래서 爻는 數이기에 납갑이라는 60갑자의 數로 구체화할수 있는 것입니다. 그런데 위 움직임이 바로 氣의 움직임입니다. 따라서爻는 6기의 3음3양을 기본원리로 하고 있습니다.

즉 주역은 象의 괘로 표현하고 있지만, 그 내면은 위 氣의 爻로 구성되어 있습니다. 따라서 위 3음3양을 모르고는 주역과 6효를 알 수 없는 것입니다. 즉6효는 3음3양(6기/시간)을 원리로 하고, 8괘는 2음2양(4상/공간)을 원리로 하고 있는 것입니다. 어쨋거나 이 학문(철학,주역,술수학,한의학 등)은 근본을 헤치고 들어가면, 모두 3음3양의 6기와 마주칩니다. 그만큼 기를 빼면 시체라고 할 수 있습니다. 그런데 잃어버린 한 부분입니다.

조금 어려울 수 있습니다. 헐~~
그러나 中을 잘 생각하고 여기에 음양을 대각선(대대작용)으로 시간과 공간관점으로 구분하여 생각해 보세요. 딱 들어맞는 논리를 발견하실 것입니다. 하도낙서, 복희문왕8괘, 6기6효, 모두...

이런 것을 깨달으면서, 이 학문을 공부하시는 분과 이런 것 없이 암기위주로 세월을 보낸 사람과는 고전을 이해함에 있어 분명 차이가 있을 것입니다. 무엇이 옳고 그른지 답은 고전에 다 있습니다. 부디 시간이 가고, 힘들더라도 어차피 이 학문을 공부할 것이라면, 모래성은 쌓지 않았으면 합니다.

2002-11-19
머무름을 알라!! 지지닷컴

Posted by 무중 이승수 지지닷컴


3양3음(삼음삼양)?

3양3음은 氣를 시간관점에서 음양으로 설명하는 개념입니다. 음양 없는 동양학은 없고, 氣 없는 동양학은 없듯이, 3양3음이 적용 안 되는 동양학은 없습니다. 그만큼 큰 이론임에도 불구하고, 정확히 이해하지 못하고 있는 것이 일반입니다.

3음은 1음(厥陰),2음(少陰),3음(太陰)이고, 3양은 1양(少陽),2양(陽明),3양(太陽)을 말하는데, 고전의 중요한 부분을 살펴보면 위 용어를 원리로 사용하는 곳을 발견할 수 있습니다. 위 3양3음은 많은 학문의 기초원리가 됩니다.

3양3음의 태과불급
장은암은 '황제내경 소문 천원기대론' 주해에서, "太陽少陽少陰  運行先天而主有餘, 陽明太陰厥陰 運行後天而主不足 此三陽三陰之氣有多少也.  形謂五行之有形也. 五形之治 各有太過不及者  謂五運之主歲"(태양, 소양, 소음은 선천을 운행하면서 태과를 주관하고, 양명,  태음, 궐음은 후천을 운행하면서 불급을 주관한다. 이 3양3음의 기에는 많고 적음이 있다. 형은 5행의 형체를 말하며, 5체를  다스림에 각각 태과불급이 있다는  것은 5운이 세를 주관함을 말한다)라고 3양3음의 태과불급을 설명한다.

3양3음의 6氣主歲
구유구는 '황제내경 소문 천원기대론'에서, "子午之歲上見少陰 丑未之歲上見太陰 寅申之歲上見少陽 卯酉之歲上見陽明 辰戌之歲上見太陽 巳亥之歲上見厥陰 少陽所謂標也 厥陰所謂終也 "(자오의 해에는 위로 소음을 만나고, 축미의 해에는 위로 태음을  만나며, 인신의 해에는 위로 소양을 만나고,  묘유의 해에는 위로 양명을  만나며, 진술의 해에는 위로 태양을 만나고, 사해의 해에는 위로 궐음을 만납니다. 소양은 표를 말하고, 궐음은 마침을 말합니다)라고 3음3양의 標로 主歲를 설명한다.

3양3음은 한의학에서는 경락이론으로 침구학에 응용되고, 6효에서는 효(爻)자체이며, 자평명리에서는 월률분야의 사령에 응용됩니다. 3양3음은 소우주 전반에 적용되기 때문에 그 적용되는 부분을 찾기는 어렵지 않습니다.

2001-05-19
머무름을 알라!! 지지닷컴

Posted by 무중 이승수 지지닷컴


삼음삼양, 육기, 표본-문답

삼음삼양, 육기, 표본  글쓴이: *** 날짜: 2005.12.31. 20:15:54

지지닷컴의 좋은 글 감사합니다. 삼음삼양과 육기의 차이를 알고 싶습니다.
그리고 이것을 표본으로도 구분하는 것 같은데 잘 이해가 안됩니다.
솔직히 내가 이해를 못하는 것인지 설명이 명료하지 못한 것인지 구분을 못합니다.
그리고 이것이 얼마나 중요한 것인지요.

새해 복 많이 받으시고, 미리 감사드립니다.

re: 삼음삼양, 육기, 표본  글쓴이: 안초 날짜: 2006.01.01. 17:21:14

***님도 새해 복 많이 받으십시오.
동양학은 쉽고 단순하지, 결코 복잡하지 않습니다.
3음3양은 理의 이치이고, 6기는 氣의 현상입니다.
세상에는 無와 有가 있습니다. 즉 無는 0이라는 이치인데 이것이 3음3양이고, 有는 1-9라는 현상인데 이것이 6기입니다.

대우주는 理에 의해서 氣가 존재하고, 소우주는 氣에 의해서 理가 형성됩니다. 그래서 위 3음3양과 6기를 標本이라는 3D의 입체적 관점에서 바라볼 때 대우주는 3음3양이 本이 되고 6기가 標가 되며, 소우주는 3음3양이 標가 되고 6기가 本이 됩니다.(황제내경 운기학 천원기대론, 6원정기대론 참조)

이것은 동양학에서 세상만물의 중심을 설명하는 근본입니다. 한의학에서는 이것이 인체의 경락을 설명하는 기본이고, 술수학에서는 이것이 월률분야를 설명하는 기본이니, 그 중요성은 아무리 강조해도 지나치지 않습니다.

3음3양의 이치는 1음(궐음), 2음(소음), 3음(태음), 1양(소양), 2양(양명), 3양(태양)을 말합니다. 6기의 현상은 풍목, 군화, 습토, 상화, 조금, 한수를 말합니다. 이것은 결국 우주의 회전을 법칙을 말하는데 12지로는 사해, 자오, 축미, 인신, 묘유, 진술을 말합니다.

가장 기본으로 모든 동양학에 응용됩니다.

2006.1.1. 안초

머무름을 알라!! 지지닷컴

Posted by 무중 이승수 지지닷컴



3.3.2. 3음3양(三陰三陽)

3음3양(3+3)

9궁(3×3)

3양

태양

2양

양명

1양

소양

3음

태음

2음

소음

1음

궐음


三陰三陽(3음3양)

황제는 '황제내경 운기 천원기대론'에서,"帝曰 其於三陰三陽合之奈何"(황제는 말한다. 그 3음3양의 합은 어떠한가)

구유구는,"鬼臾區曰 子午之歲上見少陰 丑未之歲上見太陰 寅申之歲上見少陽 卯酉之歲上見陽明 辰戌之歲上見太陽 巳亥之歲上見厥陰 少陰所謂標也 厥陰所謂終也"(자오의 해에는 위로 소음을 만나고, 축미의 해에는 위로 태음을 만나며, 인신의 해에는 위로 소양을 만나고, 묘유의 해에는 위로 양명을 만나며, 진술의 해에는 위로 태양을 만나고, 사해의 해에는 위로 궐음을 만납니다. 소음은 標를 말하고, 궐음은 終을 말합니다)라고 標로 3음3양의 主歲를 설명하고,

또한"厥陰之上風氣主之 少陰之上熱氣主之 太陰之上濕氣主之 少陽之上相火主之 陽明之上燥氣主之 太陽之上寒氣主之 所以本也 是謂六元"(궐음의 위에는 풍기가 주관하고, 소음의 위에는 열기가 주관하고, 태음의 위에는 습기가 주관하고, 소양의 위에는 상화가 주관하고, 양명의 위에는 조기가 주관하고, 태양의 위에는 한기가 주관하니 이른바 本이라 합니다. 이것을 일러 6원이라 합니다)라고 本으로 3양3음의 6氣를 설명한다.

- 3음3양(三陰三陽) -

上下相召(상하상소)

구유구는 '황제내경 운기 천원기대론'에서,"寒暑燥濕風火 天之陰陽也 三陰三陽上奉之 木火土金水火 地之陰陽也 生長化收藏下應之"(한서조습풍화는 하늘의 음양이니 3양3음이 위로 받들고, 목화토금수화는 땅의 음양이니 생장화수장이 아래로 받든다)라고 천지가 서로 불러서 이루어진다.

北上左右(북상좌우)

황제는 '황제내경 운기 제67편 5운행대론'에서,"帝曰 善 論言天地者 萬物之上下 左右者 陰陽之道路 未知其所謂也"(황제가 말한다. 좋구나. 천지는 만물의 상하이고, 좌우는 음양지도로 라고 했지만 아직 그 소위를 잘 모른다)

기백은,"岐伯曰 所謂上下者 歲上下見 陰陽之所在也 左右者 諸上 見厥陰左少陰右太陽 見少陰左太陰右厥陰 見太陰左少陽右少陰 見少陽左陽明右太陰 見陽明左太陽右少陽 見太陽左厥陰右陽明 所謂面北而定其位 言其見也"(이른바 上下는 歲의 위아래를 보여 주는 것이니 음양이 있는 곳입니다. 左右는 모두가 위에서 궐음을 볼 때 왼편이 소음이면 오른편이 태양이고, 소음을 볼 때 왼편이 태음이면 오른편은 궐음이고, 태음을 볼 때 왼편이 소양이면 오른편은 소음이고, 소양을 볼 때 왼편이 양명이면 오른편은 태음이고, 양명을 볼 때 왼편이 태양이면 오른편은 소양이고, 태양을 볼 때 왼편이 궐음이면 오른편은 양명입니다. 이른바 북쪽을 바라보면서 그 位를 定한 것이니 보이는 바를 말한 것입니다)라고 북에서 좌우를 설명한다.

南下左右(남하좌우)

황제는,"帝曰 何謂下"(아래의 소위는 어떠한가)

기백은,"岐伯曰 厥陰在上則少陽在下 左陽明右太陰 少陰在上則陽明在下 左太陽右少陽 太陰在上則太陽在下 左厥陰右陽明 少陽在上則厥陰在下 左少陰右太陽 陽明在上則少陰在下 左太陰右厥陰 太陽在上則太陰在下 左少陽右少陰 所 謂面南而命其位 言其見也"(궐음이 위에 있으면 소양이 아래에 있고 왼편이 양명이면 오른편은 태음이고, 소음이 위에 있으면 양명은 아래에 있고 왼편이 태양이면 오른편은 소양이고, 태음이 위에 있으면 태양은 아래에 있고 왼편이 궐음이면 오른편은 양명이고, 소양이 위에 있으면 궐음이 아래에 있고 왼편이 소음이면 오른편은 태양이고, 양명이 위에 있으면 소음은 아래에 있고 왼편이 태음이면 오른편은 궐음이고, 태양이 위에 있으면 태음은 아래에 있고 왼편이 소양이면 오른편은 소음입니다. 이른바 남쪽을 향해 있으면서 그 位를 命한 것이니 본 바를 말한 것입니다)라고 아래(남) 있는 좌우를 설명한다.

3陽陰(3양음)

황제는 '소문 음양류편'에서,"三陽爲經 二陽爲維 一陽爲游部 此知五臟終始 三陽爲表 二陰爲裏 一陰至節 作朔晦 具合以正其理"(3양은 經이 되고 2양은 維가 된다. 1양은 뜨는 부가 되어 이것으로 5장의 시종을 안다. 3양은 表이고 2음은 裏가 된다. 1음은 至節이니 초하루와 그믐이 되고 물러서서 갖추어 합하여 그 이치를 바로 세운다)라고 3양음을 설명한다.

本末始終(본말시종)

한동석은 '우주변화의 원리 槪念의 變化'에서, "3陰3陽이라는 본중말과 시중종을 구비한 6기운동에 대한 개념을 연구함으로써 6氣의 변화현상을 살펴보기로 하겠다. 궐음(巳亥)풍목, 소음(子午)군화, 태음(丑未)습토, 소양(寅申)상화, 양명(卯酉)조금, 태양(辰戌)한수..."라고 3陽3陰이 곧 本中末과 始中終임을 설명합니다.

궐음풍목(巳亥)

한동석은 '우주변화의 원리 槪念의 變化''에서, "厥陰(巳亥)風木 이라고 하는 말은 물이 生하려고는 하지만 力不及하여서 生하지 못하는 것을 말하는 것이다. 궐음 이란 것은 生하려고 하지만 그 氣運이 短하여서 아직 生할 수 없는 것을 궐음 이라고 하는 것이다. 궐음의 개념을 위와 같이 취한 것은 巳亥木의 성질이 위에서 말한 厥字의 상과 동일한 데서 취한 것이다. 6水 속에서 木이 나오려고 하는 象을 보면 아직 堅固한 坎水가 內部에 있다. 木이 바로 亥木이므로 나오려는 뜻만 있고 그 氣가 不及하여서 나올 수가 없는 것이 바로 亥木이기 때문이다. 그러나 亥木이 발아하여서 점점 자라게 되면 木氣의 특징을 잃게 되는 그 무렵이 바로 巳木인 것이다"라고 궐음,풍목,巳亥를 설명하고,

소음군화(子午)

또한 "君火라는 것은 少陰 속에서 자라는 火다. 君이란 뜻은 主動力을 마음대로 구사할 수 있는 실력있는 位가 바로 君位인 것이다. 군화는 子位에서 午位에 이르는 사이의 火를 稱한 것이다. 子는 본래 水요, 午는 火다. 그런즉 子에서 午에 이르는 火는 실력은 충분하나 아직 그 맹위를 發하지 못하는 火다"라고 소음. 군화, 子午를 설명하고,

태음습토(丑未)

또한 "太字의 뜻은 지극히 작으면서도 지극히 큰 것을 太라고 한다. 그러므로 太陰이나 太陽은 모두 그런 것을 의미하는 것이다. 태음은 궐음이나 소음에 비하여 더 전진한 位에 있는데 이것은 만물이 현실적으로 陰을 生하는 기본점인 것이다. 왜냐하면 物의 太少라는 것은 陰에서부터(形에서) 규정되는 것이다. 3陰은 모두 亥子丑을 기본으로 하고 巳午未를 末로 하여서 形을 만든 것인데 亥子丑이 기본이란 것은 形의 준비단계이고 寅卯辰이 體가 되는 것이다. 그런데 여기서 말하는 太陰은 기본으로서의 말단이므로 이것이 바로 사실상으로 形이 生하는 기본점이다. 濕은 본래 水와 火의 중간점이다. 조금만 더 응고하면 水의 형체를 나타내지만 반면으로 조금만 더 분열하면 火의 象을 나타내는 것이다. 그런즉 이것은 太陰이 그의 本인 丑에서 寅卯辰인 體를 거쳐서 巳午未의 말단에 이르렀을 때에 나타나는 象인즉, 이것은 다시 말해서 丑에서 生한 形이 未에 와서 소멸되고 다시 有가 생기는 象을 濕土라고 하는 것이다"라고 태음, 습토, 丑未를 설명하고,

소양상화(寅申)

또한 "相火는 寅에서 시작하여서 君火와 濕土를 거쳐서 申에 이름으로써 완성되는 것이다. 少는 아직 젊다는 뜻이다. 천도는 3음과정에서 陽을 전부 발산하였은즉 3양과정에서는 다시 종합하여야 할 것인즉 少陽은 종합의 최초의 단계이므로 少字를 놓은 것이며 이것은 바로 陽의 창조과정을 표준으로 하고 少陽이라고 한 것이다. 相火란 것은 君火를 도와주는 火란 뜻이다. 군화를 돕는 다는 말은 군화는 발산을 위주로 하는 火인즉 종합만이 그의 보조가 되는 것이므로 천도는 相火로서 君火의 보조작용을 하게 한 것이다. 少陽과 相火라는 개념은 바로 寅申의 보조 개념인 것이다. 寅申은 寅에서부터 申 사이에 이루어져서 少陽作用과 相火作用을 하기 위한 존재인 것이다"라고 소양, 상화, 寅申을 설명하고,

양명조금(卯酉)

또한 "陽明이란 것은 日月이 合하여 明을 이루었다는 말이다. 그러므로 素文에서 이것을 兩陽合明曰 陽明이라고 말한 것이다. 좀 더 자세히 말하면 太陽은 1陽이고, 少陽은 3陽인데 그 두 개의 陽이 합하면 明을 이루는 법이다. 그러므로 兩陽이 合해서 明을 이룬 것을 陽明이라고 한 것이다. 또 燥金이라고 한 것은 天地의 氣는 未에서는 濕이 生하고, 申에서는 濕이 收歛하기 시작하고, 酉에서는 완전히 燥하게 되는 것을 말하는 것이다. 다시 말하면 陽明은 물질면에서 보면 收歛하여서 燥하게 하는 데 불과하지만 정신면에서 보면 모든 사욕과 사악의 발동을 버리고 정신을 수감하는 것이므로 여기서 明이 生하는 것이다"라고 양명, 조금, 卯酉를 설명하고,

태양한수(辰戌)

또한 "太陽이란 말은 본체면에서 보면 가장 작은 陽이지만 현상면에서 보면 가장 큰 陽이라는 의미이다. 다시 말하면 辰戌은 水이나 東南方인 辰의 때에서 본즉 辰은 물이 아니라 가장 큰 陽으로 보이는 것이다. 그러나 이때의 太陽이란 것은 가장 큰 陽으로 보이지만 事實은 辰水의 作用, 즉 水가 最大分裂을 일으킨 것이다. 戌이란 것은 西北方에 있는 水다. 그러나 이것은 사실상 辰의 큰 陽이 수축되어서 戌에 와서 陽이 최심부에 복장되어 있기 때문에 작게 보일 뿐이고 사실은 그 실력이 가장 큰 陽인 것이다. 그러므로 太陽이라고 한 것이다"라고 태양, 한수, 辰戌을 설명합니다.

3음3양의 체용

한동석은 '우주변화의 원리 槪念의 變化'에서, "우주의 운동이란 것은 본래 陰陽運動이다. 陰陽에는 3陰과 3陽이 있는 것인즉 厥陰· 小陰· 太陰이 끝난다는 말은 바로 3陰運動이 다 끝난 것을 의미하는 것이다. 그런데 여기에서 한 가지 더 유의하여야 할 것은 지금까지 말한 것은 方位로 볼 때 분명히 東南의 物生運動의 과정이었다. 그런즉 그것은 陽生運動이다. 그럼에도 불구하고 3陰運動이라고 하는 것은 무슨 까닭일까 하는 점이다. 東南에서 陽運動을 한다고 하는 것은 그의 本質에 대한 관찰을 의미하는 것이다. 그런데 여기서 陰運動이라고 한 것은 그의 作用面을 論한 것이다. 그런즉 事物을 설명함에 있어서 이와 같이 體用으로 論하는 것이 옳은 방법이므로 6氣의 개념을 설정함에 있어서도 이와 같이 二面性을 띠게 한 것이다. 좀 더 풀어서 말하면 3陰은 다 陰으로서 표시하면서 그 내용은 陽인 바의 風木 君火 濕土로서 그의 反對面을 표시한 것이다. 왜 그렇게 하는가 하면 變化는 반드시 現象面과 內容面이 서로 相反된 象을 나타내기 때문이다. 그러므로 독자는 6氣의 개념을 보고 우주의 본질과 현상을 파악하는 工夫를 해야 하며 또한 生長面에서 陰(3陰)개념이 作用하는 것은 物의 生長은 陰的인 現象를 나타내면서 이루어지고 있으며 또 이루어져야만 하므로 이와 같이 개념을 설정하였다는 것을 유의해야 할 것이다"라고 설명합니다.

離合(이합)

윤창렬은 '의철학'에서, "소문의 음양이합론에서 음양의 본질은 可離可合 할 수 있어 合하면 一陰一陽이 되고, 離하면 三陰三陽으로 될 수 있다고 하였다. 이러한 말은 음과 양이 모두 자체가 함유하고 있는 음양기의 다소에 따라 각각 셋으로 나누어 질 때 음의 셋이 3음이 되고 양의 셋이 3양이 됨을 설명한 말이다"라고 음양의 離合으로 3음3양이 생긴다고 합니다.

- 6합(合) -

6合時(6합시)

회남자의 시즉훈에서,"孟春與孟秋爲合 仲春與中秋爲合 季春與季秋爲合 孟夏與孟冬爲合 仲夏與仲冬爲合 季夏與季冬爲合"(맹춘과 맹추는 합이 되고, 중춘과 중추는 합이 되고, 계춘과 계추는 합이 되고, 맹하와 맹동은 합이 되고, 중하와 중동은 합이 되고, 계하와 계동은 합이 된다)라고 시간의 6합을 이룬다.

兼三才(겸삼재)

공자는 '주역 계사하전 제10장'에서,"易之爲書也 廣大悉備 有天道焉 有人道焉 有地道焉 兼三才而兩之 故六 六者非他也 三才之道也"(易의 글이 넓고 커서 다 갖추어져 있다. 하늘의 도가 있으며 사람의 도가 있으며 땅의 도가 있으니, 3재를 겸해서 2번 하기 때문에 6이니, 6은 다른 것이 아니라 3재의 道이다)라고 6은 3재의 진리라고 했다.

Posted by 무중 이승수 지지닷컴