LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1394|回复: 4

问个小问题:如何取得时间差?[已解决]

[复制链接]
发表于 2004-11-29 15:22:18 | 显示全部楼层 |阅读模式
变量startd=20040101(即:2004年1月1日)
今天是2004年11月29日
现在我想得到这两个时间中间相差的天数,怎样得到呢?ths
发表于 2004-11-29 18:28:58 | 显示全部楼层
呵呵,我想这不是小问题

若楼主想得到精确的计算方法,可考虑用awk来编程得到时间差,这是最可行的办法

直观易行的办法可以采取使用expr来计算,从date分别获取当天的时间参数,此参数包括年,月,日。然后再用date得到变量startd的时间参数,自然也包括年,月,日。

然后使用expr来计算年,月,日之间的差值从而得到两个时间相差的天数。这个办法计算的天数由于要考虑一年有几天,一月有几天,编程会麻烦(非常麻烦,需要实现历法?),若统而取之一年365天,一月有30 天,将产生误差。若楼主希望得到大致天数,这也不失为一个好办法。若需精确,恐怕得用awk来编程计算天数差(粗略想一下,也不会太容易实现)。

可能我想法比较愚笨,或许别的兄弟能有更好的想法?
发表于 2004-11-29 19:33:28 | 显示全部楼层
其实正如kiron兄所言,date本身内置日历计算。我提供一个参考。

  1. ibox data_c # startd=20040101
  2. ibox data_c # echo $((($(date --utc +%s)-$(date -d "$startd UTC" +%s))/60/60/24))
  3. 333
复制代码
 楼主| 发表于 2004-11-30 08:59:41 | 显示全部楼层
不想使用编程计算,太麻烦,本来的思想即是如home_king老兄所说,谢谢两位先!
发表于 2005-4-30 10:41:16 | 显示全部楼层
能否精确到毫秒
回复 支持 反对

使用道具 举报

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

本版积分规则

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