Dátum: 2001. július 22., 17:07
Feladó: Külső hozzászóló --
Tárgy: JD2D, D2JD
> naptári dátumot JD-be lehet konvertálni
meg vissza.
>
Ime egy Pascal-unit forraskodja, amiben mindketto benne van:
unit datconv;
interface
type
date=object
y,m:longint;
d:real;
jd:real;
procedure d2jd;
procedure jd2d;
end;
implementation
procedure date.d2jd;
var
d1:longint;
f:real;
j,j1:longint;
s,a:longint;
begin
d1:=trunc(d);
f:=d-d1-0.5;
j:=-trunc(7*(trunc((m+9)/12)+y)/4);
a:=abs(m-9);
if m=9 then
s:=1
else
s:=trunc((m-9)/a);
j1:=trunc(y+s*trunc(a/7));
j1:=-trunc((trunc(j1/100)+1)*3/4);
j:=j+trunc(275*m/9)+d1+j1;
j:=j+1721029+367*y;
if f<0 then
begin
f:=f+1;
j:=j-1;
end;
jd:=j+f;
end;
procedure date.jd2d;
var
f:real;
a,a1,b,j:longint;
c,e:longint;
begin
j:=trunc(jd);
f:=jd-j;
f:=f+0.5;
if f>1 then
begin
f:=f-1;
j:=j+1;
end;
a1:=trunc((j/36524.25)-51.12264);
a:=j+1+a1-trunc(a1/4);
b:=a+1524;
c:=trunc((b/365.25)-0.3343);
d:=trunc(365.25*c);
e:=trunc((b-d)/30.61);
d:=b-d-trunc(30.61*e)+f;
m:=e-1;
y:=c-4716;
if e>13.5 then m:=m-12;
if m<2.5 then y:=y+1;
end;
begin
end.
A lenyeg viszonylag konnyen kikodolhato.
Kiss Laszlo
|