C#对星历第一行中08264.51782528与时间格式的转换:此处用19231.87932542举例
19231.87932542-->2019/8/19 21:06:13
DateTime datetime=Convert.ToDateTime("2000-01-01");
double days=double.Parse(“231.87932542”);
dateTime=datetime.Addyears(19);
datetime=datetime.AddDays(days).AddDays(-1);
2019/8/19 21:06:13-->19231.87932542
首先计算此日期是一年中的第几天:
DateTime t1=Convert.ToDateTime("2019-08-19");
int year=t1.year;
DateTime tbase=Convert.ToDateTime(string.Format("{0}-1-1"),year);
TimeSpan ts=t1-tbase;
int d=ts.Days+1;-------------------d=231
其次计算该时刻占一天的份额:
int second=21*60*60+6*60+13;
double ratio=second/24*60*60=0.87931713--计算出来有所误差
最后组合:
年份+第多少天+一天的占比=19231.87931713
TLE星历格式组成:
卫星星历的结构为三行,首行数据为卫星名称;后面两行则存储了卫星相关数据,每行69个字符,包括0~9、A~Z(大写)、空格、点和正负号
示例分析:
示例:
ISS (ZARYA)
1 25544U 98067A 08264.51782528 -.00002182 00000-0 -11606-4 0 2927
2 25544 51.6416 247.4627 0006703 130.5360 325.0288 15.72125391563537