Belirli bir saate n saat nasıl eklenir?


15

Başka bir zamana neden olmak için bir zamanım var, 6:45, ve 1.45 saat gibi bir miktar saat eklemek istiyorum. Bu yüzden başka bir zaman almak için sabah 6:45'e 1,45 saat eklemek istiyorum.

Bunun için bir komut satırı yardımcı programı var mı? Bazı Google Çalışmaları yaptım ve kılavuz sayfasını okudum dateve böyle bir şey bulamadım. wcalczaman hesaplamalarını yapmıyor gibi görünüyor.

EDIT: 6 Mar 2015. Bu ondalık saat kullanmak için ben sona komut dosyası. SS: DD'nin saat boyunca 2 basamak kullandığından emin olmak için bazı hata denetimleri kullanabilir.

#!/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"

Yanıtlar:


27

Komut satırı:

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

$now belirttiğiniz zamanı tutacaktır.

"Ve" arasına birçok şey koyabilirsiniz; şimdiki zaman gibi ve 105 ekleyin.


$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

Ondalık sayılara izin verilmiyor ...


Yorumlardan: 1.45 ondalık saat için cevap almak için:

$ now=$(date -d "06:45 today + $((145 * 60 / 100)) minutes" +'%H:%M')
$ echo "$now:
8:12

Squeee! Teşekkür ederim! Son bölümü okumakta zorlandım, ancak% H:% M etrafındaki kısım iki tek tırnak. Bunu dakikalara dönüştürmek yerine ondalık saatlerde yapmanın bir yolu var mı? Bu bir adımı ortadan kaldıracaktır. Özel bir hesap makinesi kurmaya bile açık olurdum. Çalışmanızı takdir ediyorum, lütfen yanlış anlamayın.
Aralık'ta Bulrush

"+10 gün" de işe yarar. "+2 saat" de öyle. Tabii burada da 2.5 saatten dakikalar yapmak için bir yöntem ekleyebilirsiniz;) Hiç kullanabileceğiniz kelimelerin tam bir listesini bulamadım ...
Rinzwind

@Bulrush hmm saat ile ondalık izin verilmez: D
Rinzwind

@Rinzwind Emin değilim ama onun 2:30 houryerine denedin 2.5 hourmi?
αғsнιη

1
@Rinzwind Yani bir olası 2 hour + 30 minutes;) kullanıyor
αғsнιη
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.