Converting seconds to minutes


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Converting seconds to minutes
# 1  
Old 12-27-2019
Converting seconds to minutes

Hello everyone,

I calculate in my bash script the different between two timestamps in seconds. The next step would be to get the difference in minutes, and there is my Problem:
Code:
AnzahlUeberstunden=$(( $(date -d "$JAHR-$MONAT-$TAG $ArbeitEnde" +%s) - $(date -d "$JAHR-$MONAT-$TAG $NormalesArbeitsEnde" +%s) ))

This is the code I calculate the seconds. Normally I would say that I only need to do:AnzahlUeberstunden=$Anzahueberstunden/60 but when I print this I get:2040/60 What am I doing wrong? The count of seconds is right with 2040......

Thanks for all hints

Steve

Last edited by rbatte1; 12-30-2019 at 04:56 AM..
# 2  
Old 12-27-2019
Try the same as de line above with $(( ... )) en some corrections in the variable name..
Code:
AnzahlUeberstunden=$((AnzahlUeberstunden/60))

or
Code:
(( AnzahlUeberstunden/=60 ))

# 3  
Old 12-27-2019
Why do i have to put tags around it?
# 4  
Old 12-28-2019
Because it is a an arithmetic operation (you are trying to divide a number by 60)

Therefore you need an arithmetic expansion ( see: Shell command language: arithmetic expansions )
so you can assign the result of the arithmetic expression to a variable (assignment means variable=value)

If you do not do that, in your example AnzahlUeberstunden=$AnzahlUeberstunden/60 what happens is that you assign the value of AnzahlUeberstunden concatenated with the text string /60, so the result becomes 2040/60.

--
My second suggestion is called an arithmetic expression (which can be used in shells like ksh93, bash, zsh) in which variables can be modified without an explicit variable assignment.

Last edited by Scrutinizer; 12-28-2019 at 03:15 AM..
This User Gave Thanks to Scrutinizer For This Post:
# 5  
Old 12-28-2019
Hi
look at this way
Code:
declare -i AnzahlUeberstunden
AnzahlUeberstunden=$(date -d "$JAHR-$MONAT-$TAG $ArbeitEnde" +%s)-$(date -d "$JAHR-$MONAT-$TAG $NormalesArbeitsEnde" +%s) #"tags" are not needed
AnzahlUeberstunden=AnzahlUeberstunden/60 #dollar sign is not needed
echo $AnzahlUeberstunden
34

Please note there should not be spaces around the minus sign

Last edited by nezabudka; 12-28-2019 at 09:18 AM..
These 2 Users Gave Thanks to nezabudka For This Post:
# 6  
Old 12-28-2019
Hi Chaos_Lord...

Just an observation; you have shown figures that apparently create a true integer value on integer division...
What happens if the number of seconds is not fully divisible by 60?
Do you just want the integer division, round down and/or round up, or a floating point value?
# 7  
Old 12-29-2019
Quote:
Originally Posted by nezabudka
[..]
Please note there should not be spaces around the minus sign
One could also use quotes:
Code:
AnzahlUeberstunden="$(date -d "$JAHR-$MONAT-$TAG $ArbeitEnde" +%s) - $(date -d "$JAHR-$MONAT-$TAG $NormalesArbeitsEnde" +%s)"

Code:
AnzahlUeberstunden='AnzahlUeberstunden / 60'

This User Gave Thanks to Scrutinizer For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to convert days hours minutes seconds to minutes?

Hi, please help with below time conversion to minutes. one column values: 2 minutes 16 seconds 420 msec 43 seconds 750 msec 0 days 3 hours 29 minutes 58 seconds 480 msec 11 seconds 150 msec I need output in minutes(total elapsed time in minutes) (2 Replies)
Discussion started by: ramu.badugula
2 Replies

2. Shell Programming and Scripting

Converting time format as Integer to seconds

Hello, How can we convert date like format 20181004171050 in seconds ? I can able to convert till date but failing for HHMMSS. date -d "20181004" "+%s" output as 1538596800 . But when i add hhmmss it is failing date -d "20181004172000" "+%s" result Invalid date Kindly guide. Regards (16 Replies)
Discussion started by: sadique.manzar
16 Replies

3. Shell Programming and Scripting

Converting seconds to time

I have a list of time spans in seconds, and want to compute the time span as hh:mm:nn I am coding in bash and have coded the following. However, the results are wrong as "%.0f" rounds the values. Example: ftm: 25793.5 tmspan(hrs,min,sec): 7.16 429.89 25793.50 hh: 7 mm: 10 ss:... (2 Replies)
Discussion started by: kristinu
2 Replies

4. Shell Programming and Scripting

Add or Subtract the hours,minutes or seconds in the the time variable

Hello All, I am working on script where I need to add hours,minutes or seconds in the time.Time is not the current but it could be future time.I thought I can store that time in variable and add hours.minutes or second but I am not able to add that in the time that is stores in a variable. Time... (9 Replies)
Discussion started by: anuragpgtgerman
9 Replies

5. Shell Programming and Scripting

How to split numeric value into hours:minutes:seconds

I have a problem. I am working on a Call Detail Report system. Come to find out the phone switch does not report in seconds. It is a 5 digit field that reports h:mm:ss The problem is I have 1-5 digit numbers Ie 1 = 1 second and should be reported as 0:00:01 22 should be 0:00:22 321 should be... (5 Replies)
Discussion started by: truecall
5 Replies

6. Shell Programming and Scripting

Converting past date to seconds

Need a little help developing a ksh script. Have read through Perderabo's datecalc routine and it does not seem to fit the function I am looking for. Basically what I am trying to do is find any file (in a specific directory) that was created within the last five minutes. I am not a programming... (3 Replies)
Discussion started by: synergy_texas
3 Replies

7. Shell Programming and Scripting

Difference in day-hours-minutes-seconds format

Hi experts, I am reading two log files and passing dates as output to a txt file. Code is given below: echo "Start Time:" >> Report.txt cat start.log | while read LINE1 do echo $DATE1 >> Report.txt done echo "End Time:" >> Report.txt cat end.log | while read LINE2 ... (7 Replies)
Discussion started by: Sreejith_VK
7 Replies

8. HP-UX

a simple way of converting a date in seconds to normal date

Hi all! I'm working on a HPUX system, and I was wondering if there is a simple way to convert a date from seconds (since 1970) to a normal date. Thanks (2 Replies)
Discussion started by: travian
2 Replies

9. Shell Programming and Scripting

how to display time in minutes n seconds...

Hi all, may i know how to display time in minutes and seconds(may be milliseconds and even smaller that ) in shell scripts.... (1 Reply)
Discussion started by: santy
1 Replies

10. Shell Programming and Scripting

Convert minutes to hours, minutes, seconds

How would you convert lets say a 1000 minutes to hours, minutes, seconds (1 Reply)
Discussion started by: Vozx
1 Replies
Login or Register to Ask a Question