GPSTime To UTC Date Time
来源:互联网 发布:数据库原理与应用技术 编辑:程序博客网 时间:2024/05/19 04:27
const static double gpst0[]={1980,1, 6,0,0,0};
typedef struct { /* time struct */
time_t time; /* time (s) expressed by standard time_t */
double sec; /* fraction of second under 1 s */
} gtime_t;
extern gtime_t epoch2time(const double *ep)
{
const int doy[]={1,32,60,91,121,152,182,213,244,274,305,335};
gtime_t time={0};
int days,sec,year=(int)ep[0],mon=(int)ep[1],day=(int)ep[2];
if (year<1970||2099<year||mon<1||12<mon) return time;
/* leap year if year%4==0 in 1901-2099 */
days=(year-1970)*365+(year-1969)/4+doy[mon-1]+day-2+(year%4==0&&mon>=3?1:0);
sec=(int)floor(ep[5]);
time.time=(time_t)days*86400+(int)ep[3]*3600+(int)ep[4]*60+sec;
time.sec=ep[5]-sec;
return time;
}
extern gtime_t gpst2time(int week, double sec)
{
gtime_t t=epoch2time(gpst0);
if (sec<-1E9||1E9<sec) sec=0.0;
t.time+=86400*7*week+(int)sec;
t.sec=sec-(int)sec;
return t;
}
extern gtime_t timeadd(gtime_t t, double sec)
{
double tt;
t.sec+=sec; tt=floor(t.sec); t.time+=(int)tt; t.sec-=tt;
return t;
}
extern gtime_t GPSTime2UTCTime(int week,double sec,double leapsec)
{
gtime_t gpst = gpst2time(week,sec);
return timeadd(gpst,-leapsec);
}
typedef struct { /* time struct */
time_t time; /* time (s) expressed by standard time_t */
double sec; /* fraction of second under 1 s */
} gtime_t;
extern gtime_t epoch2time(const double *ep)
{
const int doy[]={1,32,60,91,121,152,182,213,244,274,305,335};
gtime_t time={0};
int days,sec,year=(int)ep[0],mon=(int)ep[1],day=(int)ep[2];
if (year<1970||2099<year||mon<1||12<mon) return time;
/* leap year if year%4==0 in 1901-2099 */
days=(year-1970)*365+(year-1969)/4+doy[mon-1]+day-2+(year%4==0&&mon>=3?1:0);
sec=(int)floor(ep[5]);
time.time=(time_t)days*86400+(int)ep[3]*3600+(int)ep[4]*60+sec;
time.sec=ep[5]-sec;
return time;
}
extern gtime_t gpst2time(int week, double sec)
{
gtime_t t=epoch2time(gpst0);
if (sec<-1E9||1E9<sec) sec=0.0;
t.time+=86400*7*week+(int)sec;
t.sec=sec-(int)sec;
return t;
}
extern gtime_t timeadd(gtime_t t, double sec)
{
double tt;
t.sec+=sec; tt=floor(t.sec); t.time+=(int)tt; t.sec-=tt;
return t;
}
extern gtime_t GPSTime2UTCTime(int week,double sec,double leapsec)
{
gtime_t gpst = gpst2time(week,sec);
return timeadd(gpst,-leapsec);
}
0 0
- GPSTime To UTC Date Time
- how to convert UTC to local time
- Python: Convert UTC time-tuple to UTC timestamp
- C++ UTC time to timestamp 转化
- Date.UTC()
- UTC Time
- CRM 2011 Online SSRS report UTC time to local time
- convert utc time to local time in excel
- SQL string to date time
- UTC Time->Local Time
- UTC 转换为Date
- javascript date utc
- Date.parse 与 Date.UTC
- [android] UTC Time
- C local time & UTC time
- time value from 1970 to date string.
- java convert timestamp to date and time
- Unable to convert MySQL date/time value to System.DateTime
- 【Linux】调整ubuntu10.04 窗口关闭按钮的位置
- 2014-10-12 学习日志
- JAVA中properties配置文件的两种读取方式
- 羽毛球业余分级新标准
- Handler详解系列(四)——利用Handler在主线程与子线程之间互发消息
- GPSTime To UTC Date Time
- 第七周项目二并联电阻
- XCode快捷键
- css3的box-shadow属性实现进条效果
- 第7周项目4 输入三个整数 输出最大值
- oracle强化练习之单行函数
- 使用 HttpClient 和 HtmlParser 实现简易爬虫
- ERROR: SampleCB() - buffer sizes do not match " 解决方法
- Popush Haskell Support