0

有人知道如何将今天的儒略日期(2456425)转换为 JDE 儒略日期(113133)吗?

谢谢

4

1 回答 1

1

在我看来,今天的 Julian 日期(至少在 Oracle 看来)应该是 2456426。但是,好吧,如果按照您的说法,今天(2013 年 5 月 13 日)是 Julian 日期 2456425,那么以下代码应该可以满足您的需求:

DECLARE 
  nJulian   NUMBER := 2456425;
  nCentury  NUMBER;
  nYear     NUMBER;
  nDay      NUMBER;
  nJDEdate  NUMBER;
BEGIN
  DBMS_OUTPUT.PUT_LINE('Date=' || TO_DATE(nJulian+1, 'J'));

  nCentury := TRUNC(TO_NUMBER(TO_CHAR(TO_DATE(nJulian+1, 'J'), 'YYYY')) / 100) - 19;

  DBMS_OUTPUT.PUT_LINE('nCentury=' || nCentury);

  nYear := TO_NUMBER(TO_CHAR(TO_DATE(nJulian+1, 'J'), 'YYYY')) - 
          (TRUNC(TO_NUMBER(TO_CHAR(TO_DATE(nJulian+1, 'J'), 'YYYY')) / 100) * 100);

  DBMS_OUTPUT.PUT_LINE('nYear=' || nYear);

  nDay := TO_NUMBER(TO_CHAR(TO_DATE(nJulian+1, 'J'), 'DDD'));

  DBMS_OUTPUT.PUT_LINE('nDay=' || nDay);

  nJDEdate := (nCentury * 100000) + (nYear * 1000) + nDay;

  DBMS_OUTPUT.PUT_LINE('nJDEdate=' || nJDEdate);
END;

分享和享受。

于 2013-05-13T15:48:41.940 回答