LinuxSir.cn,穿越时空的Linuxsir!

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

请教时间加减法

[复制链接]
发表于 2004-4-30 12:08:12 | 显示全部楼层 |阅读模式
比如我要检查做什么工作化了多少时间
启动时间格式为文本 "1130"代表那天的11:30启动
完成时间格式为文本 "1220"代表那天的12:20完成
那么他所用的时间为50分钟
我只知道用date -f file可以把"1130"换成时间的格式,但怎么加减得到50就有点困难了,所以向大家请教
发表于 2004-4-30 12:31:46 | 显示全部楼层
用time command来读取命令所消耗时间可以么?
或者把前后两个时间先转化一下,用date的+%s是否可以?
比如你启动的时候取一下当前系统的时间戳,结束的时候再取一个时间戳,两个一相减,得到的消耗的秒数,除以60得到分钟,
 楼主| 发表于 2004-4-30 13:05:52 | 显示全部楼层

回版主

time command是不行的
我们公司用COBLE的程式执行程序,然后我只能从文本当中取出"113000"(代表11:30:00)的时间格式
如果用date +%s的话,要先把113000先转换成date +%s的格式呢
我如果把113000存入file文本
用date -f file可以得到时间
现在的问题是不知道怎么把文本数字转换成date +%s的格式:(
发表于 2004-4-30 13:15:20 | 显示全部楼层
这样可以:
date +%s -d '2004/04/29 13:14:00'#起始时间,举例:

  1. /home/javalee#a=$(date +%s -d '2004/04/29 12:20:00')
  2. /home/javalee#echo $a
  3. 1083212400
  4. /home/javalee#b=$(date +%s -d '2004/04/29 11:30:00')
  5. /home/javalee#echo $b
  6. 1083209400
  7. /home/javalee#echo $((a-b))
  8. 3000
  9. /home/javalee#echo $(((a-b)/60))
  10. 50
  11. /home/javalee#
复制代码
发表于 2004-4-30 14:16:28 | 显示全部楼层
这是一个很简单的数学问题,利用shell运算的时候会自动取整的特性:


  1. / $ let a=1220
  2. / $ let time_a=$a/100*60+$a-$a/100*100
  3. / $ echo $time_a
  4. 740
  5. / $ let b=1130
  6. / $ let time_b=$b/100*60+$b-$b/100*100
  7. / $ echo $time_b
  8. 690
  9. / $ let c=$time_a-$time_b
  10. / $ echo $c
  11. 50
复制代码
发表于 2004-5-1 06:53:02 | 显示全部楼层
我个人感觉javalee兄利用date更加直观点.
发表于 2004-5-1 09:28:37 | 显示全部楼层
俺觉得penny兄的好理解
let time_a=$a/100*60+$a%100
就更容易理解了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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