'julia-da.bas
'--------------------------
cls
'd=19 :m=3 :a=1920 'fechas de ejemplo
'd=4.81:m=10:a=1957
'd=27.5:m=1 :a=333 'calendario juliano
'd=17.9:m=8 :a=-1001
'd=29 :m=2 :a=-1000
'd=1.5 :m=1 :a=-4712
d=17 :m=11:a=1858
'Este programa para calcular el día juliano,
'más completo que el dado antes en este blog
'permite la introducción de fechas negativas,
'hasta el día juliano 0.
'Las fechas deben introducirse en forma astronómica
'y no histórica, por ejemplo el año anterior al
'año 1, segun los historiadores es el año -1,
'sin embargo astronómicamente es el año 0.
'Si tenemos un año como el 453BC 453 antes de Cristo) 'astronómicamentes será el año -452
'lo primero que hacemos es esta conversion de los valores de m
' de a
if m<3 then a=a-1:m=m+12
x=int(a/100)
y=2-x+int(x/4) 'fechas dadas en calendario gregoriano
y=0 ' en fechas dadas en calendario juliano
' segun el caso hay que quitar una de las dos instrucciones
'anteriores
DJ#=int(365.25*(a+4716))+int(30.6001*(m+1))+d+y-1524.5
' formula de Jean Meeus en "Astronomical algorithms" 1998
if DJ#<=2299149.5 then DJ#=DJ#-y
' dia juliano del 4-Octubre-1582 fecha de
' inicio del calendario gregoriano.
' esta instruccion equivale a poner y=0
' si la fecha es juliana, pero evita
' modificar el programa en ese caso
print using "########,.##";DJ#
end
'NOTAS:
'Este programa esta escrito originalmente en Turbobasic,
'si se va a traducir a otro basic mas moderno, por
'ejemplo a Justbasic, basta con quitar las # de las
'variables.
'** En algunos lenguajes de programación,
'por ejemplo Fortram, la instrucción int aplicada
'a números negativos solo elimina la parte decimal
'dejando la misma parte entera, por ejemplo,
'en Fortram int(-5.12)=-5, en Basic int(-5.12)=-6
'es decir el entero inmediatamente inferior.
'En estas formulas se utiliza este sentido por lo
'que debe tenerse cuidado si se traduce el
'programa a otro lengaje distinto del BASIC
'** Si vemos, en algun texto astronómico,
'el Día Juliano Modificado "MJD", se
'refiere al número de días respecto del 17
'de noviembre de 1858 a las 00h UT,
'MJD = DJ-DJ(17/11/1858/0:00) = DJ-2,400,00.5
'** Julio Cesar unificó el calendario romano en el
'año -45, pero su forma definitiva no llego hasta
'el año +8. A pesar de esto las fechas anteriores
'a la reforma gregoriana, aunque sean anteriores
'al año -45, se suelen dar en calendario juliano
'en la practica astronómica.
'** Los días julianos comienzan el 1 de enero del
'año 4.713BC a las 12:00h del medio día, así que
'el día juliano 0 será el día 1.5 del mes 1 del
'año -4712
No hay comentarios:
Publicar un comentario