GNSS时间转化(GPS时-儒略日-年月日时分秒)

2024-03-23 11:30

本文主要是介绍GNSS时间转化(GPS时-儒略日-年月日时分秒),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用python进行时间转换代码如下:

代码引用自:https://blog.csdn.net/qq_40185784/article/details/104956594

import math
def cal2mjd(cal):# cal2jd 将公历年月日时分秒转换到简化儒略日。# 输入公历时间列表,返回儒略日if (len(cal) < 6):for i in range(len(cal), 6):cal.append(0)year = cal[0]month = cal[1]day = cal[2] + (cal[3] * 3600 + cal[4] * 60 + cal[5]) / 86400;y = year + 4800m = monthif (year < 0):print('Year is wrong')return Falseif (m <= 2):# 1,2月视为前一年13,14月m = m + 12y = y - 1e = math.floor(30.6 * (m + 1))a = math.floor(y / 100)# 教皇格雷戈里十三世于1582年2月24日以教皇训令颁布,将1582年10月5日至14抹掉。1582年10月4日过完后第二天是10月15日if (year < 1582) or (year == 1582 and month < 10) or (year == 1582 and month == 10 and day < 15):b = -38else:b = math.floor((a / 4) - a)c = math.floor(365.25 * y)jd = b + c + e + day - 32167.5mjd = jd - 2400000.5return mjddef mjd2cal(mjd):# 从简化儒略日计算公历年月日时分秒# 返回的cal是年月日时分秒 列表# 公元1582年10月4日24:00点之前使用儒略历,公元1582年10月15日00:00点之后使用公历J = mjd + 2400000.5if (J < 1721423.5):# 公元1月1日0时BC = 1;else:BC = 0;if (J < 2299160.5):# 1582.10.4. 24:00 前j0 = math.floor(J + 0.5)dd = J + 0.5 - j0else:# 不是闰年的年数n1 = math.floor((J - 2342031.5) / 36524.25 / 4) + 1  # 1700.3.1.0n2 = math.floor((J - 2378555.5) / 36524.25 / 4) + 1  # 1800.3.1.0n3 = math.floor((J - 2415079.5) / 36524.25 / 4) + 1  # 1900.3.1.0j0 = n1 + n2 + n3 + J + 10dd = j0 + 0.5 - math.floor(j0 + 0.5)j0 = math.floor(j0 + 0.5)j0 = j0 + 32083year0 = math.ceil(j0 / 365.25) - 1year = year0 - 4800day = j0 - math.floor(year0 * 365.25)month = math.floor((day - 0.6) / 30.6) + 3day = day - round((month - 3) * 30.6)if (month > 12):month = month - 12year = year + 1year = year - BCsec = round(dd * 86400)hour = math.floor(sec / 3600)sec = sec - hour * 3600minute = math.floor(sec / 60)sec = sec - minute * 60return [year, month, day, hour, minute, sec]def cal2gps(cal):# cal2gps 将公历GPS时间转换到GPS周和周内的秒# 返回列表,周和周内秒mjd = cal2mjd(cal)# GPS从MJD44244开始e = mjd - 44244week = math.floor(e / 7)e = e - week * 7return [week, round(e * 86400)]def gps2cal(gpst):# gps2cal  将GPS周和周内的秒转换到公历GPS时间# 返回列表 年月日时分秒# GPS从MJD44244开始mjd = 44244 + (gpst[0] * 86400 * 7 + gpst[1]) / 86400cal = mjd2cal(mjd)return cal

测试代码如下: 

import timesystem
line=input("请输入cal:")#line为字符串
cal=[]
for n in line.split(' '):#使用空格将字符串分离cal.append(int(n)) #将字符串转换为整数并存入列表
GPStime=timesystem.cal2gps(cal)
print(GPStime)

 

 

这篇关于GNSS时间转化(GPS时-儒略日-年月日时分秒)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/838183

相关文章

如何利用Java获取当天的开始和结束时间

《如何利用Java获取当天的开始和结束时间》:本文主要介绍如何使用Java8的LocalDate和LocalDateTime类获取指定日期的开始和结束时间,展示了如何通过这些类进行日期和时间的处... 目录前言1. Java日期时间API概述2. 获取当天的开始和结束时间代码解析运行结果3. 总结前言在J

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依

Java文件与Base64之间的转化方式

《Java文件与Base64之间的转化方式》这篇文章介绍了如何使用Java将文件(如图片、视频)转换为Base64编码,以及如何将Base64编码转换回文件,通过提供具体的工具类实现,作者希望帮助读者... 目录Java文件与Base64之间的转化1、文件转Base64工具类2、Base64转文件工具类3、

Go Mongox轻松实现MongoDB的时间字段自动填充

《GoMongox轻松实现MongoDB的时间字段自动填充》这篇文章主要为大家详细介绍了Go语言如何使用mongox库,在插入和更新数据时自动填充时间字段,从而提升开发效率并减少重复代码,需要的可以... 目录前言时间字段填充规则Mongox 的安装使用 Mongox 进行插入操作使用 Mongox 进行更

如何将二进制文件流转化为MockMultipartFile文件

《如何将二进制文件流转化为MockMultipartFile文件》文章主要介绍了如何使用Spring框架中的MockMultipartFile类来模拟文件上传,并处理上传逻辑,包括获取二进制文件流、创... 目录一、名词解释及业务解释1.具体业务流程2.转换对象解释1. MockMultipartFile2

对postgresql日期和时间的比较

《对postgresql日期和时间的比较》文章介绍了在数据库中处理日期和时间类型时的一些注意事项,包括如何将字符串转换为日期或时间类型,以及在比较时自动转换的情况,作者建议在使用数据库时,根据具体情况... 目录PostgreSQL日期和时间比较DB里保存到时分秒,需要和年月日比较db里存储date或者ti

Go语言实现将中文转化为拼音功能

《Go语言实现将中文转化为拼音功能》这篇文章主要为大家详细介绍了Go语言中如何实现将中文转化为拼音功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 有这么一个需求:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

如何使用 Bash 脚本中的time命令来统计命令执行时间(中英双语)

《如何使用Bash脚本中的time命令来统计命令执行时间(中英双语)》本文介绍了如何在Bash脚本中使用`time`命令来测量命令执行时间,包括`real`、`user`和`sys`三个时间指标,... 使用 Bash 脚本中的 time 命令来统计命令执行时间在日常的开发和运维过程中,性能监控和优化是不