MAGYAR CSILLAGÁSZATI EGYESÜLET - CSILLA LISTA ARCHIVUM #2488

Re: ---== CSILLA #2487 ==---
ismeretdermesztés
Fenyszennyezes dolog+tavcsovek+kupola
diszkivilagitas
JD algoritmus
JD2D, D2JD
Ágasvári helyzetjelentés -
Re: JD2D, D2JD
Lakopark
LINEAR A2 isofotokkal
izofotak


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

   
Kezdőlap | Levelezőlisták