Sea D el día del mes, M el número de mes, e Y la cifra del año.

  • si M<=2 ⇒M=M+12 ; Y=Y-1
  • si M>2   M e Y no varían

Calculamos las siguientes magnitudes auxiliares

A=INT(Y/100)

B=2-A+INT(A/4)

Donde la función “INT” es la parte entera por defecto de la operación indicada.

El día juliano, DJ, se calcula así

DJ=INT(365,25(Y+4716) )+INT(30,6001(M+1) )+D+B-1524,5

El día juliano representa una cuenta continua de días desde el 1 de Enero del año 4713 a. C. a las 12 horas Tiempo Universal (TU). La parte decimal de nuestro día Juliano indica que para nuestros propósitos estamos calculando el día juliano de nuestra fecha de observación a las 0 h. TU.

Ejemplo

Calculemos el día juliano correspondiente al 2 de Octubre de 2013 a las 0h TU. Las variables iniciales son las siguientes

D=2

M=10

Y=2013

Las cantidades auxiliares A y B serán

A=INT(2013/100)=INT(20,13)=20

B=2-20+INT(20/4)=-18+5=-13)

Y el día juliano correspondiente al 2 de Octubre de 2013 es el

DJ=INT(365,25∙(2013+4716) )+INT(30,6001∙(10+1) )+2-13-1524,5

DJ=INT(365,25∙6729)+INT(30,6001∙11)+2-13-1524,5

DJ=INT(2457767,25)+INT(336,6011)+2-13-1524,5

DJ=2457767+336+2-13-1524,5=2456567,5

8 comentarios to “Conversión de fecha a día juliano”

  1. Carlos Arita Amador Says:

    Tengo entendido que la fecha inicial es el 1 de enero de 4713 y no el 4716 A.C. podrían confirmarme ese dato. Y si 4713 fuese lo correcto cuales serían los cambios en las fórmulas.

    1. Manuel Jimenez del Barco Says:

      Efectivamente, el día julino empieza su cuenta el 1 de Enero del 4713 a. C., en el texto del artículo aparece el año 4716 a. C., una errata que se ha colado. Procedo a corregirla. Sin embargo las fórmulas para obtenerlas están bien escritas, lo he vuelto a repasar y no hay que corregirlas.
      Carlos, muchas gracias por detectar esta errata.

      Saludos


  2. Me perdir con todo esto.. necesito con urgencia convertir este fomato juliano a gregiriano.. pero no logro que funcione en oracle

  3. Diego Says:

    HOLA SALUDOS,

    NOSE PROGRAMACIÓN MUCHO DE PROGRAMACIÓN Y SERÍA INCREIBLE QUE LO EXPUESTO LO TRANSFORMARAN EN UNA FUNCION SQL ME AYUDARÍA DE MUCHO…

    1. Agustín A Says:

      Perdona Diego, este mensaje se ha quedado pendiente no visible. Si te sirve de ayuda te paso un enlace con un conversor web http://www.ugr.es/~eaznar/conversorFecha.htm. SI lo que quieres es código, en astronomía se usa actualmente el Phyton puedes ver una rutina en http://es.scribd.com/doc/170407577/Dia-Juliano-Python#scribd. Si la quieres en Sql, directamente tienes una función TO_CHAR (“AAAA-MM-DD”, j) con el parametro j te da la fecha en juliana, si quieres al reves existe TO_DATE con el mismo parámetro te pasa día juliano a fecha.

  4. Emanuel Says:

    Gracias por la formula 🙂

  5. Albert Says:

    Donde dice si M<2 ⇒M=M+12 ; Y=Y-1
    Debería decir si M<=2 ⇒M=M+12 ; Y=Y-1
    Saludos

    1. Agustín A Says:

      Gracias Albert, tienes razón corregido.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s