Date calculation


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Date calculation
# 1  
Old 12-31-2012
Date calculation

Hi

I have this date 11:30:02-31.11.12
How to calculate date between this date and now?

I like it printed like this:
Code:
31D 2H 1M

if possible.
# 2  
Old 12-31-2012
What have you tried so far?

Have you searched the forums for other date calculations?

What code do you have and where are the problems?
# 3  
Old 12-31-2012
I know that I have to use date function, and that I have to add some value, since now is calculated since 1970.
Not sure how to make all this together.
# 4  
Old 12-31-2012
Have a read of this:-

https://www.unix.com/answers-frequent...rithmetic.html




Robin
Liverpool/Blackburn
UK
# 5  
Old 12-31-2012
I have write some answers about date calc, ex. function or ksh printf command.

Ex. using ksh93

Code:
#!/usr/bin/ksh93
str="11:30:02-31.11.12"
# convert - and . to spaces 
str=${str/-/ }
str=${str//\./ }

# generic version
read time day month year << EOF
$str
EOF
# ksh93 can use also pipe reading
echo $str | read time day month year

year="20$year"
datestr="$year-$month-$day+$time" 
epoc1=$(printf "%(%#)T" "$datestr")
epoc2=$(printf "%(%#)T" now )

((d=60*60*24))
((h=60*60))

(( diff=epoc2-epoc1 ))
(( daycnt=diff/d ))
(( hcnt=(diff-daycnt*d)/h  ))
(( mcnt= (diff - daycnt*d - hcnt*h ) / 60 ))

printf "%dD %dH %dM\n" $daycnt $hcnt $mcnt

Or using gnu date command. Search from this site "date gnu calc"
# 6  
Old 12-31-2012
What OS? If it's in Linux than it's very easy.
# 7  
Old 01-01-2013
Its Ubuntu
I have figured out some, so think I will find the rest Smilie
Code:
diff=$(( ($(date "+%s")-$(date -d "2012/12/30 16:15:59" "+%s")) ))

days=$(($diff/60/60/24))

---------- Post updated at 10:33 ---------- Previous update was at 01:15 ----------

Solution found Smilie
Hope then can help other.
Happy new year to all...

Code:
test_log="2012/12/30 16:15:59"

diff=$(( ($(date "+%s")-$(date -d "${test_log}" "+%s")) ))
days=$(( $diff/86400 ))
hours=$(( ($diff-$days*86400)/3600 ))
minutes=$(( ($diff-$days*86400-$hours*3600)/60 ))

echo "${days}D ${hours}H ${minutes}M"

1D 18H 16M

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Date calculation in UNIX

I want to automate change in 'from yyyy/mm/dd to yyyy/mm/dd' every month in a unix program. For example in this month 'from yyyy/mm/dd to yyyy/mm/dd' is 'from 2014/10/01 to 2014/11/01' next month it should be 'from 2014/11/01 to 2014/12/01' Can any one provide me the code for the above... (2 Replies)
Discussion started by: srinivas kasett
2 Replies

2. UNIX for Dummies Questions & Answers

Need help regarding date calculation

Hi All, I need to calculate the date for monday to friday. Say today is 10.oct.2014 then I need to calculate the date as 09.oct.2014. If today is 13.oct.2014 then I need to calculate the date as 10.oct.2014. If its 03.Nov.2014 then date calculated must be 31.oct.2014. Please help in in... (2 Replies)
Discussion started by: abhi_123
2 Replies

3. Shell Programming and Scripting

Date calculation, a little different...

Hello eveyone, I am tasked to write an (n)awk script to calculate the days between dates. Now before anyone chastizes me on how many forums there are on date calculation, I have no seen one that takes into account the Julian calender as well. As most know, September of 1752 is when we (the US)... (2 Replies)
Discussion started by: csharp100
2 Replies

4. Shell Programming and Scripting

Date calculation

I have to run a shell , only if file_a.txt is updated correctly before 1hr. that is, file_a.txt 2011_09_21__14:10:20 --> any format.. And the shell can be like, if ; then Run some shell update file_a.txt with (date now) fi how to do this ? (6 Replies)
Discussion started by: linuxadmin
6 Replies

5. Shell Programming and Scripting

Date calculation script

hello! I need a date calculation script that need to do that: ./date.sh 20090312 and the script need to give me which day is it for example monday friday or what else! can anyone help me?? its really urgent :S thx the help! (7 Replies)
Discussion started by: impish
7 Replies

6. Shell Programming and Scripting

Date time calculation

hello guys, I had been to many forums and many topics in this site as well for my question but did not get any solution. My question is how i can get y'day date with time stamp today is 20100729103819 and i am looking for output as 20100728103819. in simple words as we do in oracle sysdate-1... (4 Replies)
Discussion started by: lokaish23
4 Replies

7. Shell Programming and Scripting

Problems with date calculation

Hello all. I'm writing a script that should work with some files being sure that them were created a concrete day (0, 1, 2 or 3 days before script execution). This task should be done under Solaris and Linux hosts with different versions (Solaris 8, 9 and 10, Suse 9 and 10) so I'm trying to make... (3 Replies)
Discussion started by: nefeli
3 Replies

8. UNIX for Advanced & Expert Users

date calculation scripts(hp-ux)

Hi all, i need a script that can check if users did an operation within 3 days,if not delete all the logs of users who did not perform any activity after 3 days.therefore script should be able to use current date and verify last date user performed activity and see if it is greater or less than 3... (3 Replies)
Discussion started by: tomjones
3 Replies

9. Shell Programming and Scripting

Date Calculation

Hi experts, Can you please help me in calculating the future date using unix shell scripting.. for example lets say todays date is 29-sep-2008 i wanna calculate the date after 365 days... hence the date must be 29-sep-2009.. Quick response is appreciable. thanks in... (2 Replies)
Discussion started by: subhendu81
2 Replies

10. Programming

date calculation program

Hi One of my vendor based tool is giving date in no. of days since 1900-01-01. So, I want to display in CCYYMMDD format. For ex:- Vendor based tool is giving as 38790 days since 1900-01-01 corresponding to12/sep/2006 Does anybody has the... (1 Reply)
Discussion started by: axes
1 Replies
Login or Register to Ask a Question