免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: KEN6503
打印 上一主题 下一主题

[文本处理] 如何计算时间差 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2020-06-27 11:56 |只看该作者
本帖最后由 Looiml 于 2020-07-03 16:20 编辑

论坛显示回帖失败,重复提交铸造此层。

论坛徽章:
0
12 [报告]
发表于 2020-06-27 11:57 |只看该作者
回复 1# KEN6503

awk -F'[:/ ]+' '{t1=mktime(sprintf("%s %s %s %s %s %s",$3,$1,$2,$4,$5,$6));t2=mktime(sprintf("%s %s %s %s %s %s",$9,$7,$8,$10,$11,$12));diff=t2-t1;hours=int(diff/3600);minutes=int(diff%3600/60);out="--- ";if(hours>0){out=out hours (hours>1?" hrs ":" hr ")};if(minutes>0){out=out (minutes (minutes>1?" minutes":" minute"))};print $0,out}' a.txt

论坛徽章:
0
13 [报告]
发表于 2020-07-21 17:06 |只看该作者
[code]#!/usr/bin/python3.6
import datetime

a = {'second': 0, 'minute': 0, 'hour': 0, 'day': 0}

with open("/tmp/1", "r") as f:
   for line in f:
      result = ""
      time1 = datetime.datetime.strptime(line.split()[0] + " " + line.split()[1], "%m/%d/%Y %H:%M:%S")
      time2 = datetime.datetime.strptime(line.split()[2] + " " + line.split()[3], "%m/%d/%Y %H:%M:%S")
      timediff = int((time2 - time1).total_seconds())

      quotient, a['second'] = divmod(timediff, 60)

      if quotient < 60:
         a['minute'] = quotient
      else:
         quotient, a['minute'] = divmod(quotient, 60)
         if quotient < 24:
            a['hour'] = quotient
         else:
            a['day'], a['hour'] = divmod(quotient, 24)

      for k, v in a.items():
         if v == 1:
            result = str(v) + " " + k + " " + result
         if v > 1:
            result = str(v) + " " + k + "s " + result
      print(result)
[/code]

论坛徽章:
0
14 [报告]
发表于 2020-07-21 17:11 |只看该作者
#!/usr/bin/python3.6
import datetime

a = {'second': 0, 'minute': 0, 'hour': 0, 'day': 0}

with open("/tmp/1", "r") as f:
   for line in f:
      result = ""
      time1 = datetime.datetime.strptime(line.split()[0] + " " + line.split()[1], "%m/%d/%Y %H:%M:%S")
      time2 = datetime.datetime.strptime(line.split()[2] + " " + line.split()[3], "%m/%d/%Y %H:%M:%S")
      timediff = int((time2 - time1).total_seconds())

      quotient, a['second'] = divmod(timediff, 60)

      if quotient < 60:
         a['minute'] = quotient
      else:
         quotient, a['minute'] = divmod(quotient, 60)
         if quotient < 24:
            a['hour'] = quotient
         else:
            a['day'], a['hour'] = divmod(quotient, 24)

      for k, v in a.items():
         if v == 1:
            result = str(v) + " " + k + " " + result
         if v > 1:
            result = str(v) + " " + k + "s " + result
      print(line.strip() + " --- " + result)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP