Need help with Date calculations in ksh


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need help with Date calculations in ksh
# 1  
Old 04-22-2009
Need help with Date calculations in ksh

Hi Gurus,

I am writing a script where we enter two dates, one a FROM DATE and the other a TO DATE. I need to validate that difference between the two dates is always less than or equal to 60 days.
I could not find any date utility in ksh that could help me with this.
Finally, I am deciding to write a Java code and call it from the script as it is much easier and quicker to do it in Java than in Unix.
Can somebody guide me to a way in unix to do this rather than writing another script or Java or C code to do it and call it from here.

Thanks in advance.
# 2  
Old 04-22-2009
# 3  
Old 04-22-2009
Quote:
Originally Posted by jidsh
I need to validate that difference between the two dates is always less than or equal to 60 days.
If using the external command date is not against the rules, and provided that you are using date from GNU Coreutil then:
Code:
colemar@deb:~$ cat days_between
#!/bin/sh

typeset -i days_between
function days_between {
  days_between=$((($(date -d $2 +%s)-$(date -d $1 +%s))/86400))
}

days_between $1 $2
echo $days_between

colemar@deb:~$ ./days_between 2008-04-22 2009-04-22
365

# 4  
Old 04-22-2009
Colemar,

Thanks for your help.
I tried it and this is what has happened.

Quote:
[~/jiddvish]> ./days_between 2008-04-22 2009-04-22
./days_between: typeset: not found
./days_between: function: not found
./days_between: syntax error at line 5: `days_between=$' unexpected

[~/jiddvish]> uname -a
SunOS <server name deleted from here> 5.9 Generic_118558-35 sun4u sparc SUNW,Sun-Fire-V490
Franklin,
I did go through the script that you sent but I felt it is too long and big to go through for this small validation. Thanks a lot for your time and efforts though. Smilie

There is one more approach I designed myself and working on it right now.
I am creating an array that will contain number of days elapsed at the end of each month in the calendar year. Based on the month entered i can get the number of days elapsed at the end of the previous month, add it with the day of the month entered and get number of days elapsed in that year. If the difference is negative, which means the year has changed. I am hopeful that this logic will work. Once the code is ready I will paste it for others who can use it.

Thanks once again. Appreciate it really.
# 5  
Old 04-23-2009
Replace #!/bin/sh with #!/bin/ksh
# 6  
Old 04-23-2009
Quote:
Originally Posted by jidsh
Franklin,
I did go through the script that you sent but I felt it is too long and big to go through for this small validation. Thanks a lot for your time and efforts though. Smilie
Place the script in your directory with the name datecalc and call it within your script as:

Code:
var=$(./datecalc -a 2009 04 22 - 2008 04 22)

echo $var

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Date wise calculations?

POST_DATE CHECK_NUMBER TYPE LOGIN_NAME 2015.09.09 XXXXXXXXXX mark XXXXXXXXXX 2015.09.09 XXXXXXXXXX fsadf XXXXXXXXXX 2015.10.05 XXXXXXXXXX defaa XXXXXXXXXX 2015.10.05 XXXXXXXXXX dewe XXXXXXXXXX 2015.10.06 XXXXXXXXXX dqwe XXXXXXXXXX 2015.09.14 XXXXXXXXXX dt4e XXXXXXXXXX... (22 Replies)
Discussion started by: nikhil jain
22 Replies

2. UNIX for Dummies Questions & Answers

Print start date to end date, given $1 & $2 in ksh

Dear all, I have an user passing 2 parameter 31/03/2015 and 02/04/2015 to a ksh script. How to print the start date to end date. Expected output is : 31/03/2015 01/04/2015 02/04/2015 Note : 1. Im using aix and ksh 2. I have tried to convert the given input into a date, didnt... (0 Replies)
Discussion started by: mr.rajaravi
0 Replies

3. UNIX for Dummies Questions & Answers

Unable to convert date into no. using date -d +%s syntax in ksh shell

hi friends, I m trying to write a script which compares to dates. for this i am converting dates into no using synatx as below v2=`date | awk '{print $2,$3,$4}'` v3=`date +%s -d "$v2"` this syntax is working in bash shell ,but fails in ksh shell. please suggest on this. (12 Replies)
Discussion started by: Jcpratap
12 Replies

4. Shell Programming and Scripting

ksh compare dates INSIDE a file (ie date A is > date B)

In KSH, I am pasting 2 almost identical files together and each one has a date and time on each line. I need to determine if the first instance of the date/time is greater than the 2nd instance of the date/time. If the first instance is greater, I just need to echo that line. I thought I would... (4 Replies)
Discussion started by: right_coaster
4 Replies

5. Shell Programming and Scripting

Date Calculations using script!!

Hi all, Thanks in Advance , i am very new to programming part in script i think using some caluations+ sed command only we can do this process in script. for exampl: i have file in that one line is like this using sed i can replace the date and all but my requirement is The... (3 Replies)
Discussion started by: anishkumarv
3 Replies

6. Shell Programming and Scripting

How to Get 60 days Old date from current date in KSH script

Hi i am writing a cron job. so for it i need the 60 days old date form current date in variable. Like today date is 27 jan 2011 then output value will be stote in variable in formet Nov 27. i am using EST date, and tried lot of solution and see lot of post but it did not helpful for me. so... (3 Replies)
Discussion started by: Himanshu_soni
3 Replies

7. Shell Programming and Scripting

ksh date math

I have a requirement to remove all files from a directory execpt those > (now -N hrs). Once I can figure out how to calculate (now -N hrs) I was thinking of creating a temporary file with that time (now-N hrs) than using the find and -newer option. Does anybody have any KSH code (needs to... (3 Replies)
Discussion started by: BeefStu
3 Replies

8. UNIX for Dummies Questions & Answers

Date Calculations

I need to be able to use the current date and calculate 7 days ago to be stored in another variable to be passed to a file in my Unix shell script. I need the date in the following format: date '+%m/%d/%Y' or 05/16/2006 How do I calculate date minus 7 days or 1 week ago? (8 Replies)
Discussion started by: mitschcg
8 Replies

9. Shell Programming and Scripting

ksh, calculations using bc

hi all, was wondering if there is another way to do calculations in ksh scripts other than using bc ?? i am using a script to calculate average response time and my script errors out after running for a bit. e.g code i am using : averageTime=$(print "$totalTime / $numberOfEntries" |... (2 Replies)
Discussion started by: cesarNZ
2 Replies

10. Shell Programming and Scripting

want to get previous date from date command in ksh

I want to get previous date from date command. I am using ksh shell. Exmp: today is 2008.09.04 I want the result : 2008.09.03 Please help. Thanks in advance. (4 Replies)
Discussion started by: rinku
4 Replies
Login or Register to Ask a Question