[+] Bash funkcja dodaj

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
DaVidoSS
Junior Member
Posty: 875
Rejestracja: 06 marca 2010, 11:26
Lokalizacja: ~/

[+] Bash funkcja dodająca czas

Post autor: DaVidoSS »

Witajcie. Staram się stworzyć skrypt umożliwiający dodanie jakiegoś czasu do danej godziny w formacie h:m:s.

Kod: Zaznacz cały

#!/bin/bash
echo -n "Wprowadź czas  główny w formacie h:m:s:- "
read servertime
echo -n "Wprowadź  pozostały czas  do wydarzenia w formacie h:m:s:- "
read timeleft
SH=`echo $servertime  | awk -F ":" '{print $1}'`
TH=`echo $timeleft  | awk -F ":" '{print $1}'`
SM=`echo $servertime  | awk -F ":" '{print $2}'`
TM=`echo $timeleft  | awk -F ":" '{print $2}'`
SS=`echo $servertime  | awk -F ":" '{print $3}'`
TS=`echo $timeleft  | awk -F ":" '{print $3}'`

AH=$(($SH+$TH))
AM=$(($SM+$TM))
AS=$(($SS+$TS))

echo "Wydarzenie będzie miało miejsce o godzinie:- $AH:$AM:$AS "
Skrypt działa do momentu próby dodania czasu który po zsumowaniu przekracza liczbę 60.

Jak należy prawidłowo to sformułować?
Awatar użytkownika
Rafal_F
Moderator
Posty: 2350
Rejestracja: 29 sierpnia 2008, 16:45

Post autor: Rafal_F »

Nie można wstawić instrukcji warunkowej? Jeżeli sekundy > 60 to odejmij od nich 60 i dodaj 1 do minut, podobnie z minutami i po problemie.
Awatar użytkownika
DaVidoSS
Junior Member
Posty: 875
Rejestracja: 06 marca 2010, 11:26
Lokalizacja: ~/

Post autor: DaVidoSS »

Niestety to przekracza moje możliwości percepcji.

Kod: Zaznacz cały

davidoss-sid@debian-sid:~$ sh czas
Wprowadź czas  główny w formacie h:m:s:- 21:31:56
Wprowadź  pozostały czas  do wydarzenia w formacie h:m:s:- 01:31:34
Wydarzenie będzie miało miejsce o godzinie:- 22:62:90
Awatar użytkownika
Rafal_F
Moderator
Posty: 2350
Rejestracja: 29 sierpnia 2008, 16:45

Post autor: Rafal_F »

Kod: Zaznacz cały

#!/bin/bash
echo -n "Wprowadź czas  główny w formacie h:m:s:- "
read servertime
echo -n "Wprowadź  pozostały czas  do wydarzenia w formacie h:m:s:- "
read timeleft
SH=`echo $servertime  | awk -F ":" '{print $1}'`
TH=`echo $timeleft  | awk -F ":" '{print $1}'`
SM=`echo $servertime  | awk -F ":" '{print $2}'`
TM=`echo $timeleft  | awk -F ":" '{print $2}'`
SS=`echo $servertime  | awk -F ":" '{print $3}'`
TS=`echo $timeleft  | awk -F ":" '{print $3}'`

AH=$(($SH+$TH))
AM=$(($SM+$TM))
AS=$(($SS+$TS))
if [ $AS -ge 60 ]; then
    AS=$(($AS-60))
    AM=$(($AM+1))
fi
if [ $AM -ge 60 ]; then
    AM=$(($AM-60))
    AH=$(($AH+1))
fi

echo "Wydarzenie będzie miało miejsce o godzinie:- $AH:$AM:$AS "
 
Awatar użytkownika
DaVidoSS
Junior Member
Posty: 875
Rejestracja: 06 marca 2010, 11:26
Lokalizacja: ~/

Post autor: DaVidoSS »

Pięknie.
Dziękuję bardzo.
ODPOWIEDZ