조회 수 10643 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
어떤 XE플래너 위젯을 쓰다보면 아래 로컬 함수가 구현되지 않아 오류나는 경우가 있다.
class.planner123_widget_main.php 함수의 1

그레고리안(Gregorian) -> 줄리안(Julian) 변환
function GregorianToJD ($month,$day,$year) { 
    if ($month > 2) { 
        $month = $month - 3; 
    } else { 
        $month = $month + 9; 
        $year = $year - 1; 
    } 
    $c = floor($year / 100); 
    $ya = $year - (100 * $c); 
    $j = floor((146097 * $c) / 4); 
    $j += floor((1461 * $ya)/4); 
    $j += floor(((153 * $month) + 2) / 5); 
    $j += $day + 1721119; 
    return $j; 
}

줄리안(Julian) -> 그레고리안(Gregorian) 변환 (버전1)
function JDToGregorian($julian) {
    //return planner123_widget_main::fn_calcJDToGregorian($julian);
    $julian = $julian - 1721119;
    $calc1 = 4 * $julian - 1;
    $year = floor($calc1 / 146097);
    $julian = floor($calc1 - 146097 * $year);
    $day = floor($julian / 4);
    $calc2 = 4 * $day + 3;
    $julian = floor($calc2 / 1461);
    $day = $calc2 - 1461 * $julian;
    $day = floor(($day + 4) / 4);
    $calc3 = 5 * $day - 3;
    $month = floor($calc3 / 153);
    $day = $calc3 - 153 * $month;
    $day = floor(($day + 5) / 5);
    $year = 100 * $year + $julian;
    
    if ($month < 10) {
        $month = $month + 3;
    }else{
        $month = $month - 9;
        $year = $year + 1;
    }
    
    if ($day < 10) {
        $day = "0".$day;
    }
    
    if ($month < 10) {
        $month = "0".$month;
    }
    
    //return $day."/".$month."/".$year;
    return $month."/".$day."/".$year;
}


줄리안(Julian) -> 그레고리안(Gregorian) 변환 (버전2)

function fn_calcJDToGregorian($julian) {
    $z = $julian;
    $f =  .5;
    $f = 0.0; // PHP함수와 결과값 맞추기 위해 0.5일 조정함

    if($z < 2299161){
        $a = $z;
    }else{
        $alpha = floor(($z - 1867216.25) / 36524.25);
        $a = $z + 1 + $alpha - floor($alpha / 4);
    }

    $b = $a + 1524;
    $c = floor( ($b - 122.1) / 365.25);
    $d = floor( 365.25 * $c);
    $e = floor( ($b - $d) / 30.6001);
    $dd = floor( $b - $d - floor(30.6001 * $e) + $f);

    if($e < 13.5) {
        $mm = $e - 1;
    }else{
        $mm = $e - 13;
    }

    if($mm < 2.5 ){
        $yy = $c - 4715;
    }else{
        $yy = $c - 4716;
    }

    return "$mm/$dd/$yy";
}


[출처] http://flashcafe.org/php_function/8705

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
729 Develop [c++] p.118 확인학습 5번 hooni 2003.04.23 10777
728 Develop [c++] p.47 연습문제 3번 hooni 2003.04.23 10152
727 Develop [c++] p.58 연습문제 2번 hooni 2003.04.23 16357
726 Develop [c++] RSA Sample 4 CPP hooni 2013.04.23 9249
725 Develop [c++] SetWindowPos함수를 이용한 크기조절 예제 1 file hooni 2013.04.23 11119
724 Develop [c++] String Tokenizer (나중에 c 코드로 변경해서 사용할 것) hooni 2013.04.23 11731
723 Develop [c++] template 사용예 hooni 2003.04.23 7208
722 Develop [c++] Win32 API 기본 출력인 MessageBox() 함수 사용 예제.. file hooni 2013.04.23 12720
721 Develop [c++] Win32API를 이용한 ExitWindowsEx 사용한 예제코드 hooni 2013.04.23 8001
720 Develop [c++] Window API(MFC) 오목 게임 file hooni 2003.04.23 10322
719 Develop [c++] WinSock2.0 채팅 프로그램 ㅋㅋ file hooni 2013.04.23 8567
718 Develop [c++] winsock을 이용한 서버,클라이언트와 ssl서버,클라이언트 file hooni 2013.04.23 7643
717 Develop [c++] 가짜 인증서(하나은행) 프로그램 file hooni 2013.04.23 10787
716 Develop [c++] 기초강좌 #01(입출력,영역지정) hooni 2003.04.23 11479
715 Develop [c++] 기초강좌 #02(레퍼런스,메모리할당) hooni 2003.04.23 11488
714 Develop [c++] 기초강좌 #03(함수의 매개변수 전달) hooni 2003.04.23 12143
Board Pagination Prev 1 ... 6 7 8 9 10 ... 53 Next
/ 53