Как добавить n часы к требуемому времени?

Я хотел бы иметь время, сказать 6:45, и добавить сумму часов, сказать 1,45 часа, закончиться в другое время. Таким образом, я хотел бы добавить 1,45 часа к 6:45 для получения другого времени.

Существует ли командная строка, полезная для этого? Я сделал некоторый поиск с помощью Google и прочитал страницу справочника для date и не нашли ничего как этот. wcalc не кажется вычислениям времени обработки.

Править: 6 марта 2015. Это - сценарий, с которым я закончил использовать десятичные часы. Это могло использовать некоторую проверку ошибок, чтобы удостовериться, что HH:MM использует 2 цифры в течение часов.

#!/bin/bash
# Mar 6, 2015
# Add decimal hours to given time. 
# Syntax: timeadd HH:MM HOURS
# There MUST be 2 digits for the hours in HH:MM.
# Times must be in military time. 
# Ex: timeadd 05:51 4.51
# Ex: timeadd 14:12 2.05
echo " "
# If we have less than 2 parameters, show instructions and exit.
if [ $# -lt 2 ]
then
    echo "Usage: timeadd HH:MM DECHOURS"
    exit 1
fi
intime=$1
inhours=$2
# Below is arithmetic expansion $(())
# The bc calculator is standard on Ubuntu. 
# Below rounds to the minute. 
inminutes=$(echo "scale=0; ((($inhours * 60)*10)+5)/10" | bc)
echo "inminutes=$inminutes"
now=$(date -d "$intime today + $inminutes minutes" +'%H:%M')
echo "New time is $now"
14
задан 6 March 2015 в 05:49

1 ответ

Командная строка:

$ now=$(date -d "06:45 today + 105 minutes" +'%H:%M')
$ echo "$now"
08:30

$now будет содержать время, которое Вы определили.

можно поместить много вещей, промежуточных "и"; как текущее время и добавляют 105 к нему.

<час>
$now=$(date -d "06:45 today + 2.5 hour" +'%H:%M')
date: invalid date `06:45 today + 2.5 hour'
$now=$(date -d "06:45 today + 2:30 hour" +'%H:%M')
date: invalid date `06:45 today + 2:30 hour'
$ now=$(date -d "06:45 today + 2 hour" +'%H:%M')
$ echo "$now"
08:45

Никакие десятичные числа не позволяются...

<час>

Из комментариев: получить ответ в течение 1,45 десятичных часов:

$ now=$(date -d "06:45 today + $((145 * 60 / 100)) minutes" +'%H:%M')
$ echo "$now:
8:12
24
ответ дан 23 November 2019 в 02:57

Другие вопросы по тегам:

Похожие вопросы: