first commit 2
This commit is contained in:
@@ -0,0 +1,242 @@
|
||||
<?php
|
||||
#############################################################
|
||||
/*
|
||||
PHPschool의 석봉운님 오픈소스를 수정하여 사용하였습니다.
|
||||
석봉운님께 감사드립니다.
|
||||
주소 http://www.phpschool.com/bbs2/inc_view.html?id=9914&code=tnt2
|
||||
|
||||
음력 데이터는
|
||||
작은 달 : 1
|
||||
큰달 : 2
|
||||
윤달이 있는 달 - 평달이 작고 윤달도 작으면 : 3
|
||||
평달이 작고 윤달이 크면: 4
|
||||
평달이 크고 윤달이 작으면 : 5
|
||||
평달과 윤달이 모두 크면: 6
|
||||
*/
|
||||
#############################################################
|
||||
$kk = array (
|
||||
//1841년 ~ 1900년
|
||||
1,2,4,1,1,2,1,2,1,2,2,1, 2,2,1,2,1,1,2,1,2,1,2,1, 2,2,2,1,2,1,4,1,2,1,2,1, 2,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,2,1,2,1,2,1,2,1,
|
||||
2,1,2,1,5,2,1,2,2,1,2,1, 2,1,1,2,1,2,1,2,2,2,1,2, 1,2,1,1,2,1,2,1,2,2,2,1, 2,1,2,3,2,1,2,1,2,1,2,2, 2,1,2,1,1,2,1,1,2,2,1,2,
|
||||
2,2,1,2,1,1,2,1,2,1,5,2, 2,1,2,2,1,1,2,1,2,1,1,2, 2,1,2,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,5,2,1,2,1,2, 1,1,2,1,2,2,1,2,2,1,2,1,
|
||||
2,1,1,2,1,2,1,2,2,2,1,2, 1,2,1,1,5,2,1,2,1,2,2,2, 1,2,1,1,2,1,1,2,2,1,2,2, 2,1,2,1,1,2,1,1,2,1,2,2, 2,1,6,1,1,2,1,1,2,1,2,2,
|
||||
1,2,2,1,2,1,2,1,2,1,1,2, 2,1,2,1,2,2,1,2,2,3,1,2, 1,2,2,1,2,1,2,2,1,2,1,2, 1,1,2,1,2,1,2,2,1,2,2,1, 2,1,1,2,4,1,2,2,1,2,2,1,
|
||||
2,1,1,2,1,1,2,2,1,2,2,2, 1,2,1,1,2,1,1,2,1,2,2,2, 1,2,2,3,2,1,1,2,1,2,2,1, 2,2,2,1,1,2,1,1,2,1,2,1, 2,2,2,1,2,1,2,1,1,5,2,1,
|
||||
2,2,1,2,2,1,2,1,2,1,1,2, 1,2,1,2,2,1,2,1,2,2,1,2, 1,1,2,1,2,4,2,1,2,2,1,2, 1,1,2,1,2,1,2,1,2,2,2,1, 2,1,1,2,1,1,2,1,2,2,2,1,
|
||||
2,2,1,1,5,1,2,1,2,2,1,2, 2,2,1,1,2,1,1,2,1,2,1,2, 2,2,1,2,1,2,1,1,2,1,2,1, 2,2,4,2,1,2,1,1,2,1,2,1, 2,1,2,2,1,2,2,1,2,1,1,2,
|
||||
1,2,1,2,1,2,5,2,2,1,2,1, 1,2,1,2,1,2,1,2,2,1,2,2, 1,1,2,1,1,2,1,2,2,2,1,2, 2,1,1,2,3,2,1,2,2,1,2,2, 2,1,1,2,1,1,2,1,2,1,2,2,
|
||||
2,1,2,1,2,1,1,2,1,2,1,2, 2,2,1,5,2,1,1,2,1,2,1,2, 2,1,2,2,1,2,1,1,2,1,2,1, 2,1,2,2,1,2,1,2,1,2,1,2, 1,5,2,1,2,2,1,2,1,2,1,2,
|
||||
1,2,1,2,1,2,1,2,2,1,2,2, 1,1,2,1,1,5,2,2,1,2,2,2, 1,1,2,1,1,2,1,2,1,2,2,2, 1,2,1,2,1,1,2,1,2,1,2,2, 2,1,2,1,5,1,2,1,2,1,2,1,
|
||||
2,2,2,1,2,1,1,2,1,2,1,2, 1,2,2,1,2,1,2,1,2,1,2,1, 2,1,5,2,2,1,2,1,2,1,2,1, 2,1,2,1,2,1,2,2,1,2,1,2, 1,2,1,1,2,1,2,5,2,2,1,2,
|
||||
|
||||
//1901년 ~ 2000년
|
||||
1,2,1,1,2,1,2,1,2,2,2,1, 2,1,2,1,1,2,1,2,1,2,2,2, 1,2,1,2,3,2,1,1,2,2,1,2, 2,2,1,2,1,1,2,1,1,2,2,1, 2,2,1,2,2,1,1,2,1,2,1,2,
|
||||
1,2,2,4,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,2,1,2,1,2,1, 2,1,1,2,2,1,2,1,2,2,1,2, 1,5,1,2,1,2,1,2,2,2,1,2, 1,2,1,1,2,1,2,1,2,2,2,1,
|
||||
2,1,2,1,1,5,1,2,2,1,2,2, 2,1,2,1,1,2,1,1,2,2,1,2, 2,2,1,2,1,1,2,1,1,2,1,2, 2,2,1,2,5,1,2,1,2,1,1,2, 2,1,2,2,1,2,1,2,1,2,1,2,
|
||||
1,2,1,2,1,2,2,1,2,1,2,1, 2,3,2,1,2,2,1,2,2,1,2,1, 2,1,1,2,1,2,1,2,2,2,1,2, 1,2,1,1,2,1,5,2,2,1,2,2, 1,2,1,1,2,1,1,2,2,1,2,2,
|
||||
2,1,2,1,1,2,1,1,2,1,2,2, 2,1,2,2,3,2,1,1,2,1,2,2, 1,2,2,1,2,1,2,1,2,1,1,2, 2,1,2,1,2,2,1,2,1,2,1,1, 2,1,2,5,2,1,2,2,1,2,1,2,
|
||||
1,1,2,1,2,1,2,2,1,2,2,1, 2,1,1,2,1,2,1,2,2,1,2,2, 1,5,1,2,1,1,2,2,1,2,2,2, 1,2,1,1,2,1,1,2,1,2,2,2, 1,2,2,1,1,5,1,2,1,2,2,1,
|
||||
2,2,2,1,1,2,1,1,2,1,2,1, 2,2,2,1,2,1,2,1,1,2,1,2, 1,2,2,1,6,1,2,1,2,1,1,2, 1,2,1,2,2,1,2,2,1,2,1,2, 1,1,2,1,2,1,2,2,1,2,2,1,
|
||||
2,1,4,1,2,1,2,1,2,2,2,1, 2,1,1,2,1,1,2,1,2,2,2,1, 2,2,1,1,2,1,4,1,2,2,1,2, 2,2,1,1,2,1,1,2,1,2,1,2, 2,2,1,2,1,2,1,1,2,1,2,1,
|
||||
2,2,1,2,2,4,1,1,2,1,2,1, 2,1,2,2,1,2,2,1,2,1,1,2, 1,2,1,2,1,2,2,1,2,2,1,2, 1,1,2,4,1,2,1,2,2,1,2,2, 1,1,2,1,1,2,1,2,2,2,1,2,
|
||||
2,1,1,2,1,1,2,1,2,2,1,2, 2,5,1,2,1,1,2,1,2,1,2,2, 2,1,2,1,2,1,1,2,1,2,1,2, 2,2,1,2,1,2,3,2,1,2,1,2, 2,1,2,2,1,2,1,1,2,1,2,1,
|
||||
2,1,2,2,1,2,1,2,1,2,1,2, 1,2,1,2,4,2,1,2,1,2,1,2, 1,2,1,1,2,2,1,2,2,1,2,2, 1,1,2,1,1,2,1,2,2,1,2,2, 2,1,4,1,1,2,1,2,1,2,2,2,
|
||||
1,2,1,2,1,1,2,1,2,1,2,2, 2,1,2,1,2,1,1,5,2,1,2,2, 1,2,2,1,2,1,1,2,1,2,1,2, 1,2,2,1,2,1,2,1,2,1,2,1, 2,1,2,1,2,5,2,1,2,1,2,1,
|
||||
2,1,2,1,2,1,2,2,1,2,1,2, 1,2,1,1,2,1,2,2,1,2,2,1, 2,1,2,3,2,1,2,1,2,2,2,1, 2,1,2,1,1,2,1,2,1,2,2,2, 1,2,1,2,1,1,2,1,1,2,2,1,
|
||||
2,2,5,2,1,1,2,1,1,2,2,1, 2,2,1,2,2,1,1,2,1,2,1,2, 1,2,2,1,2,1,5,2,1,2,1,2, 1,2,1,2,1,2,2,1,2,1,2,1, 2,1,1,2,2,1,2,1,2,2,1,2,
|
||||
1,2,1,1,5,2,1,2,2,2,1,2, 1,2,1,1,2,1,2,1,2,2,2,1, 2,1,2,1,1,2,1,1,2,2,2,1, 2,2,1,5,1,2,1,1,2,2,1,2, 2,2,1,2,1,1,2,1,1,2,1,2,
|
||||
2,2,1,2,1,2,1,5,2,1,1,2, 2,1,2,2,1,2,1,2,1,2,1,1, 2,2,1,2,1,2,2,1,2,1,2,1, 2,1,1,2,1,6,1,2,2,1,2,1, 2,1,1,2,1,2,1,2,2,1,2,2,
|
||||
1,2,1,1,2,1,1,2,2,1,2,2, 2,1,2,3,2,1,1,2,2,1,2,2, 2,1,2,1,1,2,1,1,2,1,2,2, 2,1,2,2,1,1,2,1,1,5,2,2, 1,2,2,1,2,1,2,1,1,2,1,2,
|
||||
1,2,2,1,2,2,1,2,1,2,1,1, 2,1,2,2,1,5,2,2,1,2,1,2, 1,1,2,1,2,1,2,2,1,2,2,1, 2,1,1,2,1,2,1,2,2,1,2,2, 1,2,1,1,5,1,2,1,2,2,2,2,
|
||||
1,2,1,1,2,1,1,2,1,2,2,2, 1,2,2,1,1,2,1,1,2,1,2,2, 1,2,5,2,1,2,1,1,2,1,2,1, 2,2,2,1,2,1,2,1,1,2,1,2, 1,2,2,1,2,2,1,5,2,1,1,2,
|
||||
1,2,1,2,2,1,2,1,2,2,1,2, 1,1,2,1,2,1,2,2,1,2,2,1, 2,1,1,2,3,2,2,1,2,2,2,1, 2,1,1,2,1,1,2,1,2,2,2,1, 2,2,1,1,2,1,1,2,1,2,2,1,
|
||||
|
||||
//2001년 ~ 2043년
|
||||
2,2,2,3,2,1,1,2,1,2,1,2, 2,2,1,2,1,2,1,1,2,1,2,1, 2,2,1,2,2,1,2,1,1,2,1,2, 1,5,2,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,2,1,2,2,1,1,
|
||||
2,1,2,1,2,1,5,2,2,1,2,2, 1,1,2,1,1,2,1,2,2,2,1,2, 2,1,1,2,1,1,2,1,2,2,1,2, 2,2,1,1,5,1,2,1,2,1,2,2, 2,1,2,1,2,1,1,2,1,2,1,2,
|
||||
2,1,2,2,1,2,1,1,2,1,2,1, 2,1,6,2,1,2,1,1,2,1,2,1, 2,1,2,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,5,2,1,2, 1,2,1,1,2,1,2,2,2,1,2,2,
|
||||
1,1,2,1,1,2,1,2,2,1,2,2, 2,1,1,2,3,2,1,2,1,2,2,2, 1,2,1,2,1,1,2,1,2,1,2,2, 2,1,2,1,2,1,1,2,1,2,1,2, 2,1,2,5,2,1,1,2,1,2,1,2,
|
||||
1,2,2,1,2,1,2,1,2,1,2,1, 2,1,2,1,2,2,1,2,1,2,1,2, 1,5,2,1,2,1,2,2,1,2,1,2, 1,2,1,1,2,1,2,2,1,2,2,1, 2,1,2,1,1,5,2,1,2,2,2,1,
|
||||
2,1,2,1,1,2,1,2,1,2,2,2, 1,2,1,2,1,1,2,1,1,2,2,2, 1,2,2,1,5,1,2,1,1,2,2,1, 2,2,1,2,2,1,1,2,1,1,2,2, 1,2,1,2,2,1,2,1,2,1,2,1,
|
||||
2,1,5,2,1,2,2,1,2,1,2,1, 2,1,1,2,1,2,2,1,2,2,1,2, 1,2,1,1,2,1,5,2,2,2,1,2, 1,2,1,1,2,1,2,1,2,2,2,1, 2,1,2,1,1,2,1,1,2,2,1,2,
|
||||
2,2,1,2,1,4,1,1,2,1,2,2, 2,2,1,2,1,1,2,1,1,2,1,2, 2,2,1,2,1,2,1,2,1,1,2,1, 2,2,1,2,5,2,1,2,1,2,1,1, 2,1,2,2,1,2,2,1,2,1,2,1,
|
||||
2,1,1,2,1,2,2,1,2,2,1,2, 1,5,1,2,1,2,1,2,2,2,1,2, 1,2,1,1,2,1,1,2,2,1,2,2);
|
||||
|
||||
|
||||
###################################################
|
||||
/*
|
||||
$sy/ly : 년
|
||||
$sm/lm : 월
|
||||
$sd/ld : 일
|
||||
$leapyes : 윤달
|
||||
*/
|
||||
###################################################
|
||||
|
||||
$md = array(31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
|
||||
|
||||
function febdays($sy) {
|
||||
if(($sy%100 != 0 && $sy%4 ==0) || $sy%400 ==0) $md[1] = 29;
|
||||
else $md[1] = 28;
|
||||
return array($md[1]);
|
||||
}
|
||||
|
||||
function alltd($sy) {
|
||||
global $md;
|
||||
$td = 0;
|
||||
for($i=1841;$i<=$sy-1;$i++) {
|
||||
list($md[1]) = febdays($i);
|
||||
for($j=0;$j<12;$j++) {
|
||||
$td += $md[$j];
|
||||
$ttd[$i][12] += $md[$j];
|
||||
}
|
||||
}
|
||||
$td -= 22;
|
||||
return array($td);
|
||||
}
|
||||
|
||||
function soltolun($sy, $sm, $sd) {
|
||||
global $kk;
|
||||
global $md;
|
||||
|
||||
list($td) = alltd($sy);
|
||||
list($md[1]) = febdays($sy);
|
||||
for($i=0;$i<$sm-1;$i++) $td += $md[$i];
|
||||
$td += $sd;
|
||||
$i = 0;
|
||||
$temptd = $td;
|
||||
while($temptd>0) {
|
||||
$yoon = "";
|
||||
switch($kk[$i]) {
|
||||
case 1 :
|
||||
$mm = 29;
|
||||
break;
|
||||
case 2 :
|
||||
$mm = 30;
|
||||
break;
|
||||
case 3 :
|
||||
$mm = 29;
|
||||
$ymm = 29;
|
||||
if($temptd > 29) {
|
||||
$temptd -= 29;
|
||||
$yoon = "*";
|
||||
}
|
||||
break;
|
||||
case 4 :
|
||||
$mm = 29;
|
||||
$ymm = 30;
|
||||
if($temptd > 30) {
|
||||
$temptd -= 30;
|
||||
$yoon = "*";
|
||||
}
|
||||
break;
|
||||
case 5 :
|
||||
$mm = 30;
|
||||
$ymm = 29;
|
||||
if($temptd > 29) {
|
||||
$temptd -= 29;
|
||||
$yoon = "*";
|
||||
}
|
||||
break;
|
||||
case 6 :
|
||||
$mm = 30;
|
||||
$ymm = 30;
|
||||
if($temptd > 30) {
|
||||
$temptd -= 30;
|
||||
$yoon = "*";
|
||||
}
|
||||
break;
|
||||
}
|
||||
$temptd -=$mm;
|
||||
|
||||
$i++;
|
||||
if($i%12 == 1) $ly += 1;
|
||||
}
|
||||
if($temptd <= 0) {
|
||||
if($yoon=="*") $temptd += $ymm;
|
||||
else $temptd +=$mm;
|
||||
}
|
||||
$ly += 1840;
|
||||
$lm = $i % 12;
|
||||
if($lm==0) $lm=12;
|
||||
$ld = $temptd;
|
||||
|
||||
/* output */
|
||||
$myarray['year'] = $ly;
|
||||
$myarray['month'] = $lm;
|
||||
$myarray['day'] = $ld;
|
||||
$myarray['leap'] = $yoon;
|
||||
return $myarray;
|
||||
}
|
||||
|
||||
function luntosol($ly, $lm, $ld) {
|
||||
global $kk;
|
||||
global $md;
|
||||
|
||||
$temptd = 0;
|
||||
$dm = ($ly-1841)*12 + ($lm-1) -1;
|
||||
for($i=$dm;$i>=0;$i--) {
|
||||
switch($kk[$i]) {
|
||||
case 1 :
|
||||
$temptd += 29;
|
||||
break;
|
||||
case 2 :
|
||||
$temptd += 30;
|
||||
break;
|
||||
case 3 :
|
||||
$temptd += 58;
|
||||
break;
|
||||
case 4 :
|
||||
case 5 :
|
||||
$temptd += 59;
|
||||
break;
|
||||
case 6 :
|
||||
$temptd += 60;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$dm = ($ly-1841)*12 + ($lm) -1;
|
||||
if($leapyes == "yoon") {
|
||||
switch($kk[$dm]) {
|
||||
case 1 :
|
||||
case 2 : break;
|
||||
case 3 :
|
||||
case 4 :
|
||||
$temptd += 29;
|
||||
break;
|
||||
case 5 :
|
||||
case 6 :
|
||||
$temptd += 30;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$temptd += $ld;
|
||||
$temptd += 22;
|
||||
$td = $temptd;
|
||||
$tempsy = 1841;
|
||||
while(1) {
|
||||
list($md[1]) = febdays($tempsy);
|
||||
for($tempsm=0;$tempsm<=11;$tempsm++) {
|
||||
$temptd -= $md[$tempsm];
|
||||
if($temptd <= 0) break;
|
||||
}
|
||||
if($temptd <= 0) {
|
||||
$temptd += $md[$tempsm];
|
||||
$tempsd = $temptd;
|
||||
break;
|
||||
}
|
||||
$tempsy++;
|
||||
}
|
||||
|
||||
$sy = $tempsy;
|
||||
$sm = $tempsm + 1;
|
||||
$sd = $tempsd;
|
||||
|
||||
// output
|
||||
$myyarray['year'] = $sy;
|
||||
$myyarray['month'] = $sm;
|
||||
$myyarray['day'] = $sd;
|
||||
$myyarray['leap'] = $yoob;
|
||||
return $myyarray;
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user