当前位置: 首页 > 面试题库 >

Bash脚本:两次之间的分钟差

贲培
2023-03-14
问题内容

我有两个时间字符串;例如。同一天的“ 09:11”和“ 17:22”(格式为hh:mm)。如何计算这两者之间的时间差(以分钟为单位)?

标准date库可以这样做吗?

例:

#!/bin/bash

MPHR=60    # Minutes per hour.

CURRENT=$(date -u -d '2007-09-01 17:30:24' '+%F %T.%N %Z')
TARGET=$(date -u -d'2007-12-25 12:30:00' '+%F %T.%N %Z')

MINUTES=$(( $(diff) / $MPHR ))

给定hh:mm中的小时和分钟,是否有更简单的方法来执行此操作


问题答案:

一个纯bash解决方案:

old=09:11
new=17:22

# feeding variables by using read and splitting with IFS
IFS=: read old_hour old_min <<< "$old"
IFS=: read hour min <<< "$new"

# convert hours to minutes
# the 10# is there to avoid errors with leading zeros
# by telling bash that we use base 10
total_old_minutes=$((10#$old_hour*60 + 10#$old_min))
total_minutes=$((10#$hour*60 + 10#$min))

echo "the difference is $((total_minutes - total_old_minutes)) minutes"

使用的另一种解决方案date(我们使用小时/分钟,因此日期并不重要)

old=09:11
new=17:22

IFS=: read old_hour old_min <<< "$old"
IFS=: read hour min <<< "$new"

# convert the date "1970-01-01 hour:min:00" in seconds from Unix EPOCH time
sec_old=$(date -d "1970-01-01 $old_hour:$old_min:00" +%s)
sec_new=$(date -d "1970-01-01 $hour:$min:00" +%s)

echo "the difference is $(( (sec_new - sec_old) / 60)) minutes"

参见http://en.wikipedia.org/wiki/Unix_time



 类似资料:
  • 下面有4个bash片段。我用<代码>打电话给他们。/script.sh a b c 我不知道 $ 和 * 之间的确切区别是什么,我认为“$ @”和应该是一样的,但它们不是。为什么?

  • 问题内容: 我有一个航班行程计划,需要获取出发时间和到达时间之间的差额。我从数据中获得这些指定的时间作为字符串。这是我的问题: 输出: 第一次返回11:39和14:35之间的差异就好了。但是第二个区别只是5小时,而应该是19小时。我该怎么解决,我在做什么错呢? 任何帮助将不胜感激。 编辑:我正在使用图形来存储我的数据。两个机场之间的最短路线的示例是这样的: 这些是使我们从EDI飞往SYD的3航班。

  • 问题内容: 方法论问题: 我有一个“主” python脚本,该脚本在系统上无限循环地运行,并且我想偶尔与其他一些python脚本一起向其发送信息(例如,json数据字符串),这些脚本稍后将由本人或另一个程序启动并且将在发送字符串后立即结束。 我不能在这里使用子流程,因为我的主脚本不知道其他脚本何时运行以及它们将执行什么代码。 我正在考虑使主脚本在本地端口上侦听,并使其他脚本在该端口上向它发送字符串

  • 问题内容: 如果我有两个日期,我该如何使用JavaScript以分钟为单位获取两个日期之间的差额? 问题答案: 您可以签出以下代码: 或舍弃秒,如果您不想舍入分钟。

  • 问题内容: 时间1:17:05时间2:17:08 我想在几秒钟内得到差异。 问题答案: long diffInMillis = newerDate.getTime() - olderDate.getTime() 必看 API文件

  • 问题内容: 我试图获取当前日期与PHP 调用中的日期之间的差异,例如:。如何获得两个日期之间的时间差。我想有一个比较两个日期的函数,然后返回分钟,返回小时和返回天等等。 我应该怎么做? 编辑:当前接受的答案已经完全做了我想要做的。我建议您以方便使用的方式获取它,以便以PHP 函数使用的形式获取两个日期之间的时间。如果您对PHP不太熟悉,那么这是从1970年1月1日开始的秒数。这对于PHP后端非常有