n Задайте год григорианского календаря
а=уу\100
IF Y%+M%/100!+DT/10000>1582.1015# THEN
b=b+2-a+a\4 END IF
c=INT(365.25*yy)
IF yy<0 THEN
c=INT(365.25*yy-.75)
JD=c+INT(30.6001*(iran+1))+DT+1720994.5#+b
END FUNCTION
Программа 9_03.с
#include <stdio.h>
#include <conio.h>
#include <math.h>
double dif_time(int Yl,int Ml,double DTI,
int Y2,int M2,double DT2);
double JD(int У,int M,double DT);
main () {
int Y1,Y2,M1,M2;
double DT1,DT2;
clrscr();
printf("\ n Задайте год григорианского календаря : ");
scanf("ld",&Yl);
printf("\n Задайте месяц григорианского календаря : ");
scanf("%d",&Ml);
printf("\nЗадайте день и время : ");
scanf("%lf",&DTD;
printf("\n Задайте год григорианского календаря : ");
scanf("%d",SY2);
printf("\n Задайте месяц григорианского календаря : ");
scanf("%d",&M2);
printf("\n Задайте день и время : "};
scanf("%lf",&DT2);
printf("\n Интервал = %lf",dif_time(Y1,M1,DTI,Y2,M2,DT2));
getch(); }
/*----------------------------*/
double dif_time(int Yl,int Ml,double DTI, int Y2,int M2, double DT2)
/* Определение интервала времени между */
/* двумя григорианскими датами */
/* Y1,Y2 - годы М1,М2 - месяцы */
/* целые части DTI, DT2 - дни */
/* дробные части DTI, DT2 - время дня */ /***************************************/
return fabs(JD(Yl,Ml,DTl)-JD(Y2,M2,DT2));
}
/*---------------------------------------------------* /
double JD(int Y,int M, double DT) {
int a,b=0,m,y;
long c;
y=Y;
m=M;
if (M<3) { y--; m += 12; }
a=y/100;
if(Y+M/100.+DT/10000 > 1582.1015)b += 2-a+(int)(a/4.);
c=365.25*y;
if(y<0) c=365.25*y-0.75;
return c+(long) (30.6001* (m+1))+DT+1720994.5+b; }
Программа 9_03.pas
program gd_to_jd;
{Определение интервала времени между двумя датами григорианского календаря : (Y1,M1,DT1) и (Y2,M2,DT2) }
uses Crt; var
Yl,Ml,Y2,М2:integer;
Содержание Назад Вперед