Chinaunix

标题: 计算时间差 [打印本页]

作者: naoqingxu    时间: 2016-02-04 11:37
标题: 计算时间差
我的时间格式 老简单了
20140129 20140203
20151231 20160101
判断$2  和$1 是否超过两天

环境是HP UX
mktime
date -d
都用不了

请帮帮忙了
难道只能手动换算成秒 来计算吗。。。
作者: jason680    时间: 2016-02-04 12:17
回复 1# naoqingxu

$ awk 'function day(d){return(mktime(gensub(/(....)(..)(..)/,"\\1 \\2 \\3 0 0 0","",d))/86400)}day($2)-day($1)>2' FILE
20140129 20140203
   
作者: naoqingxu    时间: 2016-02-04 12:56
本帖最后由 naoqingxu 于 2016-02-04 12:57 编辑

jason 哥
mktime 用不了

function mktime is not define   -^-
作者: ly5066113    时间: 2016-02-04 13:35
回复 1# naoqingxu


http://bbs.chinaunix.net/thread-15781-1-1.html

或者用 perl
作者: naoqingxu    时间: 2016-02-04 14:02
回复 4# ly5066113


    我是csh,脚本其他部分已经写差不多了

    perl 也不太会
作者: ydzcjj    时间: 2016-02-04 14:45
不能用时间戳这个比较蛋疼
给个参考帖子你。。。你看看有没有提示。。。
http://bbs.chinaunix.net/thread-4178769-1-1.html
作者: jason680    时间: 2016-02-04 17:28
回复 3# naoqingxu

http://bbs.chinaunix.net/thread-1772999-1-1.html
[日期时间] 使用Epoch进行日期时间转换和计算的几个Shell小函数


$ awk 'function g(s,p,l){return(substr(s,p,l))}function day(s){y=g(s,1,4);m=g(s,5,2);d=g(s,7,2);Z=int((14-m)/12);Y=y+4800-Z;M=m+12*Z-3;return(int((153*M+2)/5)+d+Y*365+int(Y/4)-int(Y/100)+int(Y/400)-2472633)}day($2)-day($1)>2' FILE
20140129 20140203


   
作者: lyhabc    时间: 2016-02-05 14:59
20151231- 20160101|bc
直接减不行?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2