oops-KASI-Lunar
[ class tree: oops-KASI-Lunar ] [ index: oops-KASI-Lunar ] [ all elements ]

Class: Lunar

Source Location: /KASI-Lunar/KASI_Lunar.php

Class Overview


oops\KASI pear package의 main class


Author(s):

Copyright:

  • (c) 2018, OOPS.org

Methods



Class Details

[line 68]
oops\KASI pear package의 main class

한국천문연구원 데이터를 기반으로 한 음/양력 변환 클래스

이 패키지는 한국천문연구원의 음양력 데이터를 기반으로 하여 양력/음열간의 변환을 제공하며, aero님의 Date-Korean-0.0.2 perl module을 PHP로 포팅한 것이다.

양력 기준으로 1391-02-05 부터 2050-12-31 까지의 기간만 가능하며, 절기, 합삭/망 정보, 세차/월간/일진등의 정보는 oops\Lunar pear package를 이용하도록 한다.

이 패키지는 pear/Lunar package의 확장을 위하여 제작이 되었으며, 라이센스 문제로 pear/Lunar package와 별도의 패키지로 제작이 되었다. 물론 독립적으로 사용해도 무방 하다.




Tags:

author:  JoungKyun.Kim <http://oops.org>
copyright:  (c) 2018, OOPS.org
example:  Sample code
license:  GPL


[ Top ]


Class Methods


method cal2jd [line 221]

int cal2jd( array $v)

날자를 율리우스 적일로 변환



Tags:

return:  율리우스 적일(integer)
access:  public


Parameters:

array   $v   연/월/일 배열 : array ($y, $m, $d)

[ Top ]

method cal4jd [line 279]

stdClass cal4jd( [int $jd = null])

율리우스 적일을 율리우스력 또는 그레고리력으로 변환

oops\KASI\Lunar::jd2cal 의 alias method로 deprecated 되었기 때문에 jd2cal method로 변경 해야 함.

1.0.2 부터 삭제 예정




Tags:

return:  

율리우스력 또는 그레고리력 정보

   stdClass Object
   (
       [year] => 2013              // 양력 연도
       [month] => 7                // 월
       [day] => 16                 // 일
       [week] => 6                 // 요일
   )

deprecated:  deprecated since version 1.0.1
access:  public


Parameters:

int   $jd   율리우스 적일. [default: 현재날의 적일]

[ Top ]

method jd2cal [line 303]

stdClass jd2cal( [int $jd = null])

율리우스 적일을 율리우스력 또는 그레고리력으로 변환



Tags:

return:  

율리우스력 또는 그레고리력 정보

   stdClass Object
   (
       [year] => 2013              // 양력 연도
       [month] => 7                // 월
       [day] => 16                 // 일
       [week] => 6                 // 요일
   )

access:  public


Parameters:

int   $jd   율리우스 적일. [default: 현재날의 적일]

[ Top ]

method jd2week [line 337]

int jd2week( [int $jd = null])

율리우스 적일로 요일 정보를 구함



Tags:

return:  

요일 배열 인덱스

0(일) ~ 6(토)

access:  public


Parameters:

int   $jd   율리우스 적일. [default: 현재날의 적일]

[ Top ]

method tolunar [line 99]

stdClass tolunar( [int|string $v = null])

양력 날자를 음력으로 변환

예제:

  1. require_once 'KASI_Lunar.php';
  2.  
  3. $lunar new oops\KASI\Lunar;
  4.  
  5. $days array (
  6.     '1391-02-05',
  7.     '1582-10-04',
  8.     '1582-10-05',
  9.     '1582-10-15',
  10.     '1583-03-03'// not leap
  11.     '1583-04-03'// leap
  12.     '2050-12-31',
  13.     '2051-12-31',
  14. );
  15.  
  16. $ment array (
  17.     '유효범위 시작날자',
  18.     '율리우스력 마지막 날자',
  19.     '율리우스력과 그레고리력 사이의 존재하지 않는 날',
  20.     '그레고리력 시작 날자',
  21.     '윤달 체크(아님)',
  22.     '윤달 체크(맞음)',
  23.     '유효범위 마지막 날자',
  24.     '유효범위 밖'
  25. );
  26.  
  27. echo "-----------------------------------------------------------------------\n";
  28.  
  29. try {
  30.     $i 0;
  31.     foreach $days as $day {
  32.         $l $lunar->tolunar ($day);
  33.  
  34.         $leap  $l->leap 'true' 'false';
  35.         $lmoon $l->lmoon 'true' 'false';
  36.  
  37.         $s $lunar->tosolar ($l->fmt$l->leap);
  38.  
  39.         echo <<<EOF
  40. 지정 날자: $day - {$ment[$i++]}
  41. 음력 변환: {$l->fmt}, leap: {$leap}, LargeMoon: {$lmoon}
  42. 양력 변환: {$s->fmt{$s->jd}
  43. -----------------------------------------------------------------------
  44.  
  45. EOF;
  46.     }
  47. catch Exception $e {
  48.     echo $e->Message ("\n";
  49.     print_r ($e->TraceAsArray ()) "\n";
  50.     $e->finalize ();
  51. }




Tags:

return:  

음력 날자 정보 반환

   stdClass Object
   (
       [fmt]    => 2013-06-09       // YYYY-MM-DD 형식의 음력 날자
       [jd]     => 2456582          // 율리어스 적일
       [year]   => 2013             // 연도
       [month]  => 6                // 월
       [day]    => 9                // 일
       [leap]   =>                  // 음력 윤달 여부
       [lmonth] => 1                // 평달/큰달 여부
   )

access:  public


Parameters:

int|string   $v   날자형식
  • unixstmap (1970년 12월 15일 이후부터 가능)
  • Ymd or Y-m-d
  • null data (현재 시간)
  • 1582년 10월 15일 이전의 날자는 율리우스력의 날자로 취급함. 예.. 10월 14일은 그레고리력 10월 24일

[ Top ]

method tosolar [line 177]

stdClass tosolar( [int|string $v = null], [bool $leap = false])

음력 날자를 양력으로 변환.

예제:

  1. require_once 'KASI_Lunar.php';
  2.  
  3. $lunar new oops\KASI\Lunar;
  4.  
  5. $days array (
  6.     '1391-02-05',
  7.     '1582-10-04',
  8.     '1582-10-05',
  9.     '1582-10-15',
  10.     '1583-03-03'// not leap
  11.     '1583-04-03'// leap
  12.     '2050-12-31',
  13.     '2051-12-31',
  14. );
  15.  
  16. $ment array (
  17.     '유효범위 시작날자',
  18.     '율리우스력 마지막 날자',
  19.     '율리우스력과 그레고리력 사이의 존재하지 않는 날',
  20.     '그레고리력 시작 날자',
  21.     '윤달 체크(아님)',
  22.     '윤달 체크(맞음)',
  23.     '유효범위 마지막 날자',
  24.     '유효범위 밖'
  25. );
  26.  
  27. echo "-----------------------------------------------------------------------\n";
  28.  
  29. try {
  30.     $i 0;
  31.     foreach $days as $day {
  32.         $l $lunar->tolunar ($day);
  33.  
  34.         $leap  $l->leap 'true' 'false';
  35.         $lmoon $l->lmoon 'true' 'false';
  36.  
  37.         $s $lunar->tosolar ($l->fmt$l->leap);
  38.  
  39.         echo <<<EOF
  40. 지정 날자: $day - {$ment[$i++]}
  41. 음력 변환: {$l->fmt}, leap: {$leap}, LargeMoon: {$lmoon}
  42. 양력 변환: {$s->fmt{$s->jd}
  43. -----------------------------------------------------------------------
  44.  
  45. EOF;
  46.     }
  47. catch Exception $e {
  48.     echo $e->Message ("\n";
  49.     print_r ($e->TraceAsArray ()) "\n";
  50.     $e->finalize ();
  51. }




Tags:

return:  

양력 날자 정보 object 반환

   stdClass Object
   (
       [fmt]   => 2013-06-09       // YYYY-MM-DD 형식의 음력 날자
       [jd]    => 2456527          // 율리어스 적일
       [year]  => 2013             // 양력 연도
       [month] => 7                // 월
       [day]   => 16               // 일
       [week]  => 6                // 요일
   )

access:  public


Parameters:

int|string   $v  

날자형식

  • unixstmap (1970년 12월 15일 이후부터 가능)
  • Ymd or Y-m-d
  • null data (현재 시간)

bool   $leap   윤달여부

[ Top ]


Documentation generated on Tue, 14 May 2019 02:00:10 +0900 by phpDocumentor 1.4.4