Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 팁&트릭
Delphi Programming Tip&Tricks
[19] [함수] 양력<->음력 변환 함수...
박종민.BacTeria [bacteria] 7222 읽음    2002-03-28 09:25
안녕 하세요?

BacTeria 박종민 입니다.

어떤 분이 요청하신 양력<->음력 변환 Unit 입니다.

출처는 제 하드에 굴러 다니는 것임...(예전에 어디서 받았는데... 쩝!!)

그럼 오늘 하루도 수고하세요...

이만...

unit SolarLunar;

interface


Procedure Solar_To_Lunar(Year,Month,Day:Word; Var LYear,LMonth,LDay : Word);
Procedure Lunar_To_Solar(LunarYear,LunarMonth,LunarDay : Word;
                     Var SolarYear,SolarMonth,SolarDay : Word);

implementation

Procedure Solar_To_Lunar(Year,Month,Day:Word; Var LYear,LMonth,LDay: Word);
Const
  kk : array [0..162,0..12] of 0..4 = (
  {*1881*}   ( 1, 2, 1, 2, 1, 2, 2, 3, 2, 2, 1, 2, 1 ) ,
             ( 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 0 ) ,
             ( 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 0 ) ,
             ( 2, 1, 1, 2, 1, 3, 2, 1, 2, 2, 1, 2, 2 ) ,
             ( 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 0 ) ,
             ( 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0 ) ,
             ( 2, 2, 1, 2, 3, 2, 1, 1, 2, 1, 2, 1, 2 ) ,
             ( 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 0 ) ,
             ( 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0 ) ,
             ( 1, 2, 3, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2 ) ,

  {*1891*}   ( 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 0 ) ,
             ( 1, 1, 2, 1, 1, 2, 3, 2, 2, 1, 2, 2, 2 ) ,
             ( 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 0 ) ,
             ( 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 0 ) ,
             ( 2, 1, 2, 1, 2, 3, 1, 2, 1, 2, 1, 2, 1 ) ,
             ( 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0 ) ,
             ( 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0 ) ,
             ( 2, 1, 2, 3, 2, 2, 1, 2, 1, 2, 1, 2, 1 ) ,
             ( 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 0 ) ,
             ( 1, 2, 1, 1, 2, 1, 2, 2, 3, 2, 2, 1, 2 ) ,

  {*1901*}   ( 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 0 ) ,
             ( 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 0 ) ,
             ( 1, 2, 1, 2, 1, 3, 2, 1, 1, 2, 2, 1, 2 ) ,
             ( 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 0 ) ,
             ( 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 0 ) ,
             ( 1, 2, 2, 1, 4, 1, 2, 1, 2, 1, 2, 1, 2 ) ,
             ( 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 0 ) ,
             ( 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 0 ) ,
             ( 1, 2, 3, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2 ) ,
             ( 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 0 ) ,

  {*1911*}   ( 2, 1, 2, 1, 1, 2, 3, 1, 2, 2, 1, 2, 2 ) ,
             ( 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 0 ) ,
             ( 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 0 ) ,
             ( 2, 2, 1, 2, 2, 3, 1, 2, 1, 2, 1, 1, 2 ) ,
             ( 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0 ) ,
             ( 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 0 ) ,
             ( 2, 1, 3, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1 ) ,
             ( 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 0 ) ,
             ( 1, 2, 1, 1, 2, 1, 2, 3, 2, 2, 1, 2, 2 ) ,
             ( 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 0 ) ,

  {*1921*}   ( 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 0 ) ,
             ( 2, 1, 2, 2, 1, 3, 2, 1, 1, 2, 1, 2, 2 ) ,
             ( 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 0 ) ,
             ( 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 0 ) ,
             ( 2, 1, 2, 2, 3, 2, 1, 2, 2, 1, 2, 1, 2 ) ,
             ( 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0 ) ,
             ( 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 0 ) ,
             ( 1, 2, 3, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2 ) ,
             ( 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 0 ) ,
             ( 1, 2, 2, 1, 1, 2, 3, 1, 2, 1, 2, 2, 1 ) ,

 {*1931*}    ( 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 0 ) ,
             ( 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 0 ) ,
             ( 1, 2, 2, 1, 2, 4, 1, 2, 1, 2, 1, 1, 2 ) ,
             ( 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 0 ) ,
             ( 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0 ) ,
             ( 2, 1, 1, 4, 1, 2, 1, 2, 1, 2, 2, 2, 1 ) ,
             ( 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 0 ) ,
             ( 2, 2, 1, 1, 2, 1, 1, 4, 1, 2, 2, 1, 2 ) ,
             ( 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0 ) ,
             ( 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 0 ) ,

  {*1941*}   ( 2, 2, 1, 2, 2, 1, 4, 1, 1, 2, 1, 2, 1 ) ,
             ( 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 0 ) ,
             ( 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 0 ) ,
             ( 1, 1, 2, 1, 4, 1, 2, 1, 2, 2, 1, 2, 2 ) ,
             ( 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 0 ) ,
             ( 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 0 ) ,
             ( 2, 2, 3, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2 ) ,
             ( 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0 ) ,
             ( 2, 2, 1, 2, 1, 2, 1, 3, 2, 1, 2, 1, 2 ) ,
             ( 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 0 ) ,

  {*1951*}   ( 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0 ) ,
             ( 1, 2, 1, 2, 1, 4, 2, 1, 2, 1, 2, 1, 2 ) ,
             ( 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 0 ) ,
             ( 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 0 ) ,
             ( 2, 1, 1, 4, 1, 1, 2, 1, 2, 1, 2, 2, 2 ) ,
             ( 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 0 ) ,
             ( 2, 1, 2, 1, 2, 1, 1, 2, 3, 2, 1, 2, 2 ) ,
             ( 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0 ) ,
             ( 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0 ) ,
             ( 2, 1, 2, 1, 2, 2, 3, 2, 1, 2, 1, 2, 1 ) ,

  {*1961*}   ( 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 0 ) ,
             ( 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0 ) ,
             ( 2, 1, 2, 1, 3, 2, 1, 2, 1, 2, 2, 2, 1 ) ,
             ( 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 0 ) ,
             ( 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 0 ) ,
             ( 2, 2, 2, 3, 2, 1, 1, 2, 1, 1, 2, 2, 1 ) ,
             ( 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 0 ) ,
             ( 1, 2, 2, 1, 2, 1, 2, 3, 2, 1, 2, 1, 2 ) ,
             ( 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 0 ) ,
             ( 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 0 ) ,

  {*1971*}   ( 1, 2, 1, 1, 2, 3, 2, 1, 2, 2, 2, 1, 2 ) ,
             ( 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 0 ) ,
             ( 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 0 ) ,
             ( 2, 2, 1, 2, 3, 1, 2, 1, 1, 2, 2, 1, 2 ) ,
             ( 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 0 ) ,
             ( 2, 2, 1, 2, 1, 2, 1, 2, 3, 2, 1, 1, 2 ) ,
             ( 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 0 ) ,
             ( 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 0 ) ,
             ( 2, 1, 1, 2, 1, 2, 4, 1, 2, 2, 1, 2, 1 ) ,
             ( 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 0 ) ,

  {*1981*}   ( 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 0 ) ,
             ( 2, 1, 2, 1, 3, 2, 1, 1, 2, 2, 1, 2, 2 ) ,
             ( 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 0 ) ,
             ( 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 3, 2, 2 ) ,
             ( 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 0 ) ,
             ( 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 0 ) ,
             ( 2, 1, 2, 2, 1, 2, 3, 2, 2, 1, 2, 1, 2 ) ,
             ( 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0 ) ,
             ( 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 0 ) ,
             ( 1, 2, 1, 1, 2, 3, 1, 2, 1, 2, 2, 2, 2 ) ,

  {*1991*}   ( 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 0 ) ,
             ( 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 0 ) ,
             ( 1, 2, 2, 3, 2, 1, 2, 1, 1, 2, 1, 2, 1 ) ,
             ( 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 0 ) ,
             ( 1, 2, 2, 1, 2, 2, 1, 2, 3, 2, 1, 1, 2 ) ,
             ( 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 0 ) ,
             ( 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0 ) ,
             ( 2, 1, 1, 2, 1, 3, 2, 2, 1, 2, 2, 2, 1 ) ,
             ( 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 0 ) ,
             ( 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 0 ) ,

  {*2001*}   ( 2, 2, 2, 1, 3, 2, 1, 1, 2, 1, 2, 1, 2 ) ,
             ( 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 0 ) ,
             ( 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 0 ) ,
             ( 1, 2, 3, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2 ) ,
             ( 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 0 ) ,
             ( 1, 1, 2, 1, 2, 1, 2, 3, 2, 2, 1, 2, 2 ) ,
             ( 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 0 ) ,
             ( 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 0 ) ,
             ( 2, 2, 1, 1, 2, 3, 1, 2, 1, 2, 1, 2, 2 ) ,
             ( 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0 ) ,

  {*2011*}   ( 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 0 ) ,
             ( 2, 1, 2, 4, 2, 1, 2, 1, 1, 2, 1, 2, 1 ) ,
             ( 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0 ) ,
             ( 1, 2, 1, 2, 1, 2, 1, 2, 2, 3, 2, 1, 2 ) ,
             ( 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 0 ) ,
             ( 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 0 ) ,
             ( 2, 1, 1, 2, 1, 3, 2, 1, 2, 1, 2, 2, 2 ) ,
             ( 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 0 ) ,
             ( 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0 ) ,
             ( 2, 1, 2, 2, 3, 2, 1, 1, 2, 1, 2, 1, 2 ) ,

  {*2021*}   ( 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0 ) ,
             ( 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 0 ) ,
             ( 1, 2, 3, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2 ) ,
             ( 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0 ) ,
             ( 2, 1, 2, 1, 1, 2, 3, 2, 1, 2, 2, 2, 1 ) ,
             ( 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 0 ) ,
             ( 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 0 ) ,
             ( 1, 2, 2, 1, 2, 3, 1, 2, 1, 1, 2, 2, 1 ) ,
             ( 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 0 ) ,
             ( 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 0 ) ,

  {*2031*}   ( 2, 1, 2, 3, 2, 1, 2, 2, 1, 2, 1, 2, 1 ) ,
             ( 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 0 ) ,
             ( 1, 2, 1, 1, 2, 1, 2, 3, 2, 2, 2, 1, 2 ) ,
             ( 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 0 ) ,
             ( 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 0 ) ,
             ( 2, 2, 1, 2, 1, 1, 4, 1, 1, 2, 1, 2, 2 ) ,
             ( 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 0 ) ,
             ( 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 0 ) ,
             ( 2, 2, 1, 2, 2, 3, 2, 1, 2, 1, 2, 1, 1 ) ,
             ( 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 0 ) ,

  {*2041*}   ( 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 0 ) ,
             ( 1, 2, 3, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2 ) ,
             ( 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 0 ) );

Var
  m  : Array [0..11] of Integer;
  dt : Array [0..162] of Integer;
  m1, m2, i, j, jcount : Integer;
  td, td0, td1, td2, k11 : LongInt;
  leap : Boolean;

Begin
  m[0]  := 31;  m[1]  :=  0;  m[2]  := 31;  m[3]  := 30;
  m[4]  := 31;  m[5]  := 30;  m[6]  := 31;  m[7]  := 31;
  m[8]  := 30;  m[9]  := 31;  m[10] := 30;  m[11] := 31;

  for i:=0 To 162 Do Begin
    dt[i] := 0;
    for j:=0 To 11 Do Begin
      Case (kk[i][j]) of
        1 , 3 : dt[i] := dt[i] + 29;
        2 , 4 : dt[i] := dt[i] + 30;
        End;
      End;
    Case (kk[i][12]) of
      1 , 3 : dt[i] := dt[i] + 29;
      2 , 4 : dt[i] := dt[i] + 30;
      End;
    End;
 {* 1. 1. 1. - 1910. 2. 10. *}
  td1 := 1880*365 + (1880 Div 4)- (1880 Div 100) + (1880 Div 400) + 30;

 {* ## 1. 1. 1. - Year. Month. Day. ## *}
  k11 := (Year-1);
  td2 := k11*365 + (k11 Div 4) - (k11 Div 100) + (k11 Div 400);
  leap := ((Year mod 400) = 0) Or ((Year mod 100) <> 0) And ((Year mod 4) = 0);
  if leap then m[1] := 29
     else   m[1] := 28;
  for i:=0 To Month-2 Do td2 := td2 + m[i];
  td2 := td2 + Day;

  {* ## 1881. 1. 30. - Year. Month. Day. ## *}
  td  := td2 - td1 + 1;

  {* ## Lunar Year Caculation ## *}
  td0 := dt[0];
  for i:=0 To 162 Do Begin
    if( td <= td0 ) then break;
    td0 := td0 + dt[i+1];
    End;
  LYear := i + 1881;
  td0 := td0 - dt[i];
  td  := td - td0;
  if(kk[i][12] <> 0) then jcount := 13
   else jcount := 12;
  m2 := 0;
  for j:=0 To jcount-1 Do Begin
    if( kk[i][j] <=2 ) then m2 := m2 + 1;
    if( kk[i][j] <=2 ) then m1 := kk[i][j] + 28
     else  m1 := kk[i][j] + 26;
    if( td <= m1 ) then break;
    td := td - m1;
    End;
  LMonth := m2;
  LDay := td;
End;


Procedure Lunar_To_Solar(LunarYear,LunarMonth,LunarDay : Word;
                     Var SolarYear,SolarMonth,SolarDay : Word);
Const
      kk : array [1..163,1..13] of 0..4 = (

      {*1881*}   (1, 2, 1, 2, 1, 2, 2, 3, 2, 2, 1, 2, 1),
                 (1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 0),
                 (1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 0),
                 (2, 1, 1, 2, 1, 3, 2, 1, 2, 2, 1, 2, 2),
                 (2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 0),
                 (2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0),
                 (2, 2, 1, 2, 3, 2, 1, 1, 2, 1, 2, 1, 2),
                 (2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 0),
                 (2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0),
                 (1, 2, 3, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2),

      {*1891*}   (1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 0),
                 (1, 1, 2, 1, 1, 2, 3, 2, 2, 1, 2, 2, 2),
                 (1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 0),
                 (1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 0),
                 (2, 1, 2, 1, 2, 3, 1, 2, 1, 2, 1, 2, 1),
                 (2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0),
                 (1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0),
                 (2, 1, 2, 3, 2, 2, 1, 2, 1, 2, 1, 2, 1),
                 (2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 0),
                 (1, 2, 1, 1, 2, 1, 2, 2, 3, 2, 2, 1, 2),

      {*1901*}   (1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 0),
                 (2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 0),
                 (1, 2, 1, 2, 1, 3, 2, 1, 1, 2, 2, 1, 2),
                 (2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 0),
                 (2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 0),
                 (1, 2, 2, 1, 4, 1, 2, 1, 2, 1, 2, 1, 2),
                 (1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 0),
                 (2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 0),
                 (1, 2, 3, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2),
                 (1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 0),

      {*1911*}   (2, 1, 2, 1, 1, 2, 3, 1, 2, 2, 1, 2, 2),
                 (2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 0),
                 (2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 0),
                 (2, 2, 1, 2, 2, 3, 1, 2, 1, 2, 1, 1, 2),
                 (2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0),
                 (1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 0),
                 (2, 1, 3, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1),
                 (2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 0),
                 (1, 2, 1, 1, 2, 1, 2, 3, 2, 2, 1, 2, 2),
                 (1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 0),

      {*1921*}   (2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 0),
                 (2, 1, 2, 2, 1, 3, 2, 1, 1, 2, 1, 2, 2),
                 (1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 0),
                 (2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 0),
                 (2, 1, 2, 2, 3, 2, 1, 2, 2, 1, 2, 1, 2),
                 (1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0),
                 (2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 0),
                 (1, 2, 3, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2),
                 (1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 0),
                 (1, 2, 2, 1, 1, 2, 3, 1, 2, 1, 2, 2, 1),

      {*1931*}   (2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 0),
                 (2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 0),
                 (1, 2, 2, 1, 2, 4, 1, 2, 1, 2, 1, 1, 2),
                 (1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 0),
                 (1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0),
                 (2, 1, 1, 4, 1, 2, 1, 2, 1, 2, 2, 2, 1),
                 (2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 0),
                 (2, 2, 1, 1, 2, 1, 1, 4, 1, 2, 2, 1, 2),
                 (2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0),
                 (2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 0),

      {*1941*}   (2, 2, 1, 2, 2, 1, 4, 1, 1, 2, 1, 2, 1),
                 (2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 0),
                 (1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 0),
                 (1, 1, 2, 1, 4, 1, 2, 1, 2, 2, 1, 2, 2),
                 (1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 0),
                 (2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 0),
                 (2, 2, 3, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2),
                 (2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0),
                 (2, 2, 1, 2, 1, 2, 1, 3, 2, 1, 2, 1, 2),
                 (2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 0),

      {*1951*}   (2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0),
                 (1, 2, 1, 2, 1, 4, 2, 1, 2, 1, 2, 1, 2),
                 (1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 0),
                 (1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 0),
                 (2, 1, 1, 4, 1, 1, 2, 1, 2, 1, 2, 2, 2),
                 (1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 0),
                 (2, 1, 2, 1, 2, 1, 1, 2, 3, 2, 1, 2, 2),
                 (1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0),
                 (1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0),
                 (2, 1, 2, 1, 2, 2, 3, 2, 1, 2, 1, 2, 1),

      {*1961*}   (2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 0),
                 (1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0),
                 (2, 1, 2, 1, 3, 2, 1, 2, 1, 2, 2, 2, 1),
                 (2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 0),
                 (1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 0),
                 (2, 2, 2, 3, 2, 1, 1, 2, 1, 1, 2, 2, 1),
                 (2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 0),
                 (1, 2, 2, 1, 2, 1, 2, 3, 2, 1, 2, 1, 2),
                 (1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 0),
                 (2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 0),

      {*1971*}   (1, 2, 1, 1, 2, 3, 2, 1, 2, 2, 2, 1, 2),
                 (1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 0),
                 (2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 0),
                 (2, 2, 1, 2, 3, 1, 2, 1, 1, 2, 2, 1, 2),
                 (2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 0),
                 (2, 2, 1, 2, 1, 2, 1, 2, 3, 2, 1, 1, 2),
                 (2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 0),
                 (2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 0),
                 (2, 1, 1, 2, 1, 2, 4, 1, 2, 2, 1, 2, 1),
                 (2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 0),

      {*1981*}   (1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 0),
                 (2, 1, 2, 1, 3, 2, 1, 1, 2, 2, 1, 2, 2),
                 (2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 0),
                 (2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 3, 2, 2),
                 (1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 0),
                 (1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 0),
                 (2, 1, 2, 2, 1, 2, 3, 2, 2, 1, 2, 1, 2),
                 (1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0),
                 (2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 0),
                 (1, 2, 1, 1, 2, 3, 1, 2, 1, 2, 2, 2, 2),

      {*1991*}   (1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 0),
                 (1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 0),
                 (1, 2, 2, 3, 2, 1, 2, 1, 1, 2, 1, 2, 1),
                 (2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 0),
                 (1, 2, 2, 1, 2, 2, 1, 2, 3, 2, 1, 1, 2),
                 (1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 0),
                 (1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0),
                 (2, 1, 1, 2, 1, 3, 2, 2, 1, 2, 2, 2, 1),
                 (2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 0),
                 (2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 0),

      {*2001*}   (2, 2, 2, 1, 3, 2, 1, 1, 2, 1, 2, 1, 2),
                 (2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 0),
                 (2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 0),
                 (1, 2, 3, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2),
                 (1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 0),
                 (1, 1, 2, 1, 2, 1, 2, 3, 2, 2, 1, 2, 2),
                 (1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 0),
                 (2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 0),
                 (2, 2, 1, 1, 2, 3, 1, 2, 1, 2, 1, 2, 2),
                 (2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0),

      {*2011*}   (2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 0),
                 (2, 1, 2, 4, 2, 1, 2, 1, 1, 2, 1, 2, 1),
                 (2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0),
                 (1, 2, 1, 2, 1, 2, 1, 2, 2, 3, 2, 1, 2),
                 (1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 0),
                 (1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 0),
                 (2, 1, 1, 2, 1, 3, 2, 1, 2, 1, 2, 2, 2),
                 (1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 0),
                 (2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0),
                 (2, 1, 2, 2, 3, 2, 1, 1, 2, 1, 2, 1, 2),

      {*2021*}   (1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0),
                 (2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 0),
                 (1, 2, 3, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2),
                 (1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0),
                 (2, 1, 2, 1, 1, 2, 3, 2, 1, 2, 2, 2, 1),
                 (2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 0),
                 (1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 0),
                 (1, 2, 2, 1, 2, 3, 1, 2, 1, 1, 2, 2, 1),
                 (2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 0),
                 (1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 0),

      {*2031*}   (2, 1, 2, 3, 2, 1, 2, 2, 1, 2, 1, 2, 1),
                 (2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 0),
                 (1, 2, 1, 1, 2, 1, 2, 3, 2, 2, 2, 1, 2),
                 (1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 0),
                 (2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 0),
                 (2, 2, 1, 2, 1, 1, 4, 1, 1, 2, 1, 2, 2),
                 (2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 0),
                 (2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 0),
                 (2, 2, 1, 2, 2, 3, 2, 1, 2, 1, 2, 1, 1),
                 (2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 0),

      {*2041*}   (2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 0),
                 (1, 2, 3, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2),
                 (1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 0)
      );

      YukGabHeaven : array[1..10] of string =
            ( 'GAP', 'EUL', 'BYEONG', 'JEONG', 'MOO',
              'GEE', 'GYEONG', 'SIN', 'EEM', 'GYE' );
      YukGabEarth : array[1..12] of string =
            ( 'JAH', 'CHOOK', 'EEN', 'MYO', 'JIN', 'SAH',
              'OH', 'MEE', 'SIN', 'YOU', 'SUL', 'HAE' );
      SizeOfMonth : array[1..12] of Integer =
          ( 31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );
      Weekday : array[1..7] of string =
             ( 'SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT' );

Var
      LunarLeap : Integer;
      m1, m2, n2 : Integer;
      i, j, k1, k2, k  : Integer;
      leap : Boolean;
      DayTotal : LongInt;

begin
  m1 := 0;
  DayTotal := 0;

  If LunarYear <> 1881 Then Begin
    m1 := LunarYear - 1882 + 1;
    For i := 1 To m1 Do Begin
      For j := 1 To 13  Do DayTotal := DayTotal + kk[i][j];
      If kk[i][13] = 0 Then DayTotal := DayTotal + 336
       Else DayTotal := DayTotal + 362
      end;
    end;

  m1 := m1 + 1;
  n2 := LunarMonth;
  m2 := 0;
  While True Do Begin
    m2 := m2 + 1;
    If kk[m1][m2] > 2 Then begin
      DayTotal := DayTotal + 26 + kk[m1][m2];
      n2 := n2 + 1;
      End
     else If m2 = n2 Then break
      else DayTotal := DayTotal + 28 + kk[m1][m2]
    End;

  DayTotal := DayTotal + LunarDay + 29;
  m1 := 1880;
  While True Do   Begin
    m1 := m1 + 1;
    leap := ((m1 mod 400) = 0) Or ((m1 mod 100) <> 0) And ((m1 mod 4) = 0);
    If leap Then m2 := 366
     Else m2 := 365;
    If DayTotal <= m2 Then break;
    DayTotal := DayTotal - m2;
    End;

  SolarYear := m1;

  SizeOfMonth[2] := m2 - 337;
  m1 := 0;
  While True Do Begin
    m1 := m1 + 1;
    If DayTotal <= SizeOfMonth[m1] Then break;
    DayTotal := DayTotal - SizeOfMonth[m1];
    End;
  SolarMonth := m1;
  SolarDay := DayTotal;
end;

end.

+ -

관련 글 리스트
19 [함수] 양력<->음력 변환 함수... 박종민.BacTeria 7222 2002/03/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.