OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9802|回复: 9

求一个算法,求解差值,各路大神请支招。

[复制链接]

54

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
420
金钱
420
注册时间
2014-5-13
在线时间
66 小时
发表于 2014-11-28 16:58:27 | 显示全部楼层 |阅读模式
5金钱

现在遇到这样一个问题,
我从RTC中读出时间数据:Time1[6] = {0x14,0x11,0x28,0x12,0x12,0x30}  ——时间为:2014-11-28 12:12:30

从设备发来一个时间数据:Time2[6] = {0x14,0x11,0x28,0x12,0x14,0x20}  ——时间为:2014-11-28 12:14:20

两个时间数组不知道具体时间,

怎样求解两个数组的差值,还有比较两个数组的大小。求一个算法,求各路大神支招。

最佳答案

查看完整内容[请看2#楼]

从C语言标准库上找到一个计算秒的函数,太好啦,mktime()用来将参数timeptr所指的tm结构数据转换成从公元1970年1月1日0时0分0 秒算起至今的UTC时间所经过的秒数。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

54

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
420
金钱
420
注册时间
2014-5-13
在线时间
66 小时
 楼主| 发表于 2014-11-28 16:58:28 | 显示全部楼层
从C语言标准库上找到一个计算秒的函数,太好啦,mktime()用来将参数timeptr所指的tm结构数据转换成从公元1970年1月1日0时0分0 秒算起至今的UTC时间所经过的秒数。
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4471
金钱
4471
注册时间
2013-4-22
在线时间
335 小时
发表于 2014-11-28 17:03:35 | 显示全部楼层
你指的是时间的差值还是其他?
回复

使用道具 举报

1

主题

80

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2014-11-26
在线时间
0 小时
发表于 2014-11-28 17:04:26 | 显示全部楼层
转换成格林威治时间。
回复

使用道具 举报

54

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
420
金钱
420
注册时间
2014-5-13
在线时间
66 小时
 楼主| 发表于 2014-11-28 20:34:30 | 显示全部楼层
就是转换为秒来比较大小或求差值吧,还有其他高效的方法吗?。。。。。。。。。。。。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-11-28 22:56:18 | 显示全部楼层
你这个很影响效率么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

58

主题

6291

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11406
金钱
11406
注册时间
2014-4-1
在线时间
1282 小时
发表于 2014-11-28 23:14:35 | 显示全部楼层
按顺序拼接成一个或两个32位,比较一次或两次。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-11-28 23:31:52 | 显示全部楼层
回复【6楼】xuande:
---------------------------------
这样不行吧
他要求时间差。
必须得到精确的结果。

也就是年月日时分秒,全部得统计成秒,然后求差值,得到秒钟差。
我不知道楼主是不是要这样的结果。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

54

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
420
金钱
420
注册时间
2014-5-13
在线时间
66 小时
 楼主| 发表于 2014-12-1 09:14:28 | 显示全部楼层
嗯,是的,我想得到两个时间的秒钟差,我的方法有两种:
1、将时间转化为秒,再作比较。
2、将两个时间的年比较、再月比较、再日比较、……比较不同的地方再处理。

原子哥有没有更好的方法呢?
回复

使用道具 举报

1

主题

80

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2014-11-26
在线时间
0 小时
发表于 2014-12-1 09:45:06 | 显示全部楼层
1是便捷的了。2的方法,如果一个时间是2月28号,一个时间是3月1号,那么就够你算的了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 09:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表