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

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

Есть ли для этого утилита командной строки? Я сделал несколько Googling и прочитал man-страницу для date и не нашел ничего подобного. wcalc, похоже, не обрабатывает расчеты времени.

EDIT: 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"
1
задан 6 March 2015 в 16:49

0 ответов

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

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