Contents

조회 수 10589 댓글 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
번호 분류 제목 글쓴이 날짜 조회 수
1173 System/OS 해커스랩 깨기.. 후후.. ㅋㅋ file hooni 2013.04.23 18408
1172 Etc 플라스터(Plaster) 수업 내용 secret hooni 2016.05.24 0
1171 Develop 프로그램 문서 관리 (Doxygen) hooni 2013.04.23 16383
1170 Develop 프로그래밍에서 foo, bar 함수의 유래 file hooni 2013.06.25 21237
1169 Develop 프로그래밍 소스 관련 사이트.. hooni 2013.04.23 16483
1168 Develop 페이팔에서 돈 찾기 (Paypal withdraw) file hooni 2014.02.20 10953
1167 Etc 티스토리 테이블 html,css 구문 hooni 2013.11.03 15939
1166 System/OS 콘솔에서 패스워드 걸린 zip 압축하는 명령 hooni 2018.03.02 923
1165 System/OS 컴파일러 수업 자료(교재 : 컴파일러 입문) file hooni 2003.04.23 21964
1164 Develop 캘리포니아 운전면허 족보 file hooni 2017.06.12 720
1163 Etc 캘리포니아 운전면허 문제 file hooni 2017.07.22 954
1162 Develop 최근 논문 자료 (2011/01/03, 만현형한테 보낸거..) secret hooni 2013.04.23 10366
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 98 Next
/ 98