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实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

Java强制转化示例代码详解

《Java强制转化示例代码详解》:本文主要介绍Java编程语言中的类型转换,包括基本类型之间的强制类型转换和引用类型的强制类型转换,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录引入基本类型强制转换1.数字之间2.数字字符之间引入引用类型的强制转换总结引入在Java编程语言中,类型转换(无论

Python如何获取域名的SSL证书信息和到期时间

《Python如何获取域名的SSL证书信息和到期时间》在当今互联网时代,SSL证书的重要性不言而喻,它不仅为用户提供了安全的连接,还能提高网站的搜索引擎排名,那我们怎么才能通过Python获取域名的S... 目录了解SSL证书的基本概念使用python库来抓取SSL证书信息安装必要的库编写获取SSL证书信息

MySQL 日期时间格式化函数 DATE_FORMAT() 的使用示例详解

《MySQL日期时间格式化函数DATE_FORMAT()的使用示例详解》`DATE_FORMAT()`是MySQL中用于格式化日期时间的函数,本文详细介绍了其语法、格式化字符串的含义以及常见日期... 目录一、DATE_FORMAT()语法二、格式化字符串详解三、常见日期时间格式组合四、业务场景五、总结一、

如何利用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