空间大地测量与GPS导航定位时间系统相互转换,格里高利时通用时(2)

2020-05-09 14:41

long day; TOD tod;

}MJULIANDAY;//新儒略日

typedef MJULIANDAY *PMJIANDAY; typedef struct tagTOW {

long sn;//秒整数部分 double tos;//秒小数部分

}TOW;

typedef TOW *PTOW; typedef struct tagGPSTIME {

int wn; //周数

TOW tow;//一周内的秒数

}GPSTIME;//GPS时

typedef GPSTIME *PGPSTIME; typedef struct tagDOY {

unsigned short year; unsigned short day; TOD tod;

}DOY;//年积日 typedef DOY *PDOY; double FRAC(double morigin) { }

void CommonTimeToJulianDay(PCOMMONTIME pct,PJULIANDAY pjd) //通用时到儒略日的转换

{

return morigin-long(morigin);// 取小数部分

if(pct->year<1900)

{ }

double ut=pct->hour + pct->minute/60.0 + pct->second/3600.0; if(pct->month<=2) { }

pjd->day=int(365.25*pct->year)+int(30.6001*(pct->month+1))+pct->day+in

pct->year-=1; pct->month+=12; if(pct->year<80) pct->year+=2000; else pct->year+=1900;

t(ut/24+1720981.5);

pjd->tod.sn=

((pct->hour+12)$)*3600+pct->minute*60+(int)pct->second;//秒的整数部分

}

void JulianDayToCommonTime(PJULIANDAY pjd,PCOMMONTIME pct)//儒略日到通用时的转换

{

pjd->tod.tos=pct->second-(int)pct->second;//秒的小数部分

double x=pjd->day+(pjd->tod.sn+pjd->tod.tos)/(60.0*60.0*24); int a=int(x+0.5); int b=a+1537;

int c=int((b-122.1)/365.25); int d=int(365.25*c); int e=int((b-d)/30.6001); pct->day=b-d-int(30.6001*e); pct->month=e-1-12*int(e/14);

pct->year=c-4715-int((7+pct->month)/10);

}

pct->hour=(pjd->tod.sn/3600+12)$; pct->minute=(pjd->tod.sn600)/60; pct->second=pjd->tod.sn`+pjd->tod.tos; int N=a%7;

void JulianDayToGPSTime(PJULIANDAY pjd,PGPSTIME pgt)//儒略日到GPS时的转换

{

double x=pjd->day+(pjd->tod.sn+pjd->tod.tos)/(60.0*60.0*24); pgt->wn=int((x-2444244.5)/7);

pgt->tow.sn=int(((pjd->day-2444244)%7+(pjd->tod.sn/(60.0*60.0*24)-0.5))

*86400);

}

void GPSTimeToJulianDay(PGPSTIME pgt,PJULIANDAY pjd)//GPS时到儒略日的转换

{ }

void CommonTimeToGPSTime(PCOMMONTIME pct,PGPSTIME pgt)//通用时到GPS时的转换

{

PJULIANDAY pjd=new JULIANDAY; CommonTimeToJulianDay(pct,pjd);

pjd->day=int(pgt->wn*7+double(pgt->tow.sn)/86400.0+2444244.5); pjd->tod.sn=(pgt->tow.sn+43200)?400; pjd->tod.tos=pgt->tow.tos; pgt->tow.tos=pjd->tod.tos;

JulianDayToGPSTime(pjd,pgt); }

void GPSTimeToCommonTime(PGPSTIME pgt,PCOMMONTIME pct)//GPS时到通用时的转换

{ }

void CommonTimeToDOY (PCOMMONTIME pct, PDOY pdoy) {

PJULIANDAY pjd=new JULIANDAY; GPSTimeToJulianDay(pgt,pjd); JulianDayToCommonTime(pjd,pct);

PCOMMONTIME pcto=new COMMONTIME; pcto->year=pct->year; pcto->month=1; pcto->day=1; pcto->hour=0; pcto->minute=0; pcto->second=0;

PJULIANDAY pjdo=new JULIANDAY;

double JD,JDO;

CommonTimeToJulianDay(pcto,pjdo);

JDO=pjdo->day+(pjdo->tod.sn+pjdo->tod.tos)/86400;

PJULIANDAY pjd=new JULIANDAY; CommonTimeToJulianDay(pct,pjd);

JD=pjd->day+(pjd->tod.sn+pjd->tod.tos)/86400;

pdoy->day=short(JD-JDO+1); pdoy->year=pct->year;

pdoy->tod.sn=long(pct->hour*3600

+pct->minute*60+pct->second);

pdoy->tod.tos=pct->second-int(pct->second); /*pct->hour*3600 }

void DOYToCommonTime (PDOY pdoy, PCOMMONTIME pct) {

PCOMMONTIME pcto=new COMMONTIME; pcto->year=pdoy->year; pcto->month=1; pcto->day=1; pcto->hour=0; pcto->minute=0; pcto->second=0;

PJULIANDAY pjdo=new JULIANDAY;

+pct->minute*60+pct->second-pdoy->tod.sn;*/

double JD,JDO;

CommonTimeToJulianDay(pcto,pjdo);

JDO=pjdo->day+(pjdo->tod.sn+pjdo->tod.tos)/86400; JD=JDO+pdoy->day+(pdoy->tod.sn+pdoy->tod.tos)/86400-1; long a,b,c,d,e; a=(long)(JD+0.5); b=a+1537;

c=(long)((b-122.1)/365.25); d=(long)(365.25*c); e=(long)((b-d)/30.6001);

pct->day=short(b-d-(long)(30.6001*e)+FRAC(JD+0.5)); pct->month=short(e-1-12*(long)(e/14));

pct->year=short(c-4715-(long)((7+pct->month)/10)); pct->hour=short((pdoy->tod.sn+pdoy->tod.tos)/3600); pct->minute=short((pdoy->tod.sn+pdoy->tod.tos

-pct->hour*3600)/60);


空间大地测量与GPS导航定位时间系统相互转换,格里高利时通用时(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:简析医学生人文素质教育的现实困境

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: