Calculate days between yyyyMmmdd dates on Solaris


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Calculate days between yyyyMmmdd dates on Solaris
# 1  
Old 02-23-2012
Calculate days between yyyyMmmdd dates on Solaris

I extract dates from the log file and need to calculate days between two dates. My dates are in yyyyMmmdd format. Example:

$d1=2011 Oct 21
$d2=2012 Feb 20

I need to calculate the number of days between $d2 and $d1. This is on Solaris.
Any ideas?

Thanks,
djanu
# 2  
Old 02-23-2012
Please go into the FAQ, look for date arithmetic by a user named Perderabo. The datecalc script there will do almost any date operation.
# 3  
Old 02-24-2012
Wow. This is quite a script. All I need is number of days. There are no easier ways?

---------- Post updated 02-24-12 at 10:17 AM ---------- Previous update was 02-23-12 at 05:01 PM ----------

Any ideas how to calculate number of days between 2011 Oct 21 and 2012 Feb 20 ?
# 4  
Old 02-24-2012
Code:
#! /usr/bin/perl
use warnings;
use strict;
use Time::Local 'timelocal';

my ($d1, $d2, %mnths, @x, @y, $s1, $s2);

($d1, $d2) = ("2012 Jan 31", "2012 Mar 01");

%mnths = ( "Jan" => "00", "Feb" => "01", "Mar" => "02", "Apr" => "03", "May" => "04", "Jun" => "05",
           "Jul" => "06", "Aug" => "07", "Sep" => "08", "Oct" => "09", "Nov" => "10", "Dec" => "11" );

@x = split /\s+/, $d1;
@y = split /\s+/, $d2;

$s1 = timelocal (0, 0, 0, $x[2], $mnths{$x[1]}, $x[0]);
$s2 = timelocal (0, 0, 0, $y[2], $mnths{$y[1]}, $y[0]);

print "No. of days: ", (($s2 - $s1) / (3600 * 24)) + 1; # This is inclusive of both dates. If you don't want it like this, then remove "+1" from the end.


Last edited by balajesuri; 02-24-2012 at 05:52 PM..
# 5  
Old 02-24-2012
Quote:
Originally Posted by djanu
Wow. This is quite a script. All I need is number of days. There are no easier ways?
Date math isn't trivial. Ever tried rolling your own?

Certainly there's easier ways. Try GNU date.

Oh, you don't have GNU date? Try Perl.

Oh, you can't install Perl? Maybe you can coerce MySQL or AWK into doing it...

No go? Try the big script, then.

People suggest the script because you didn't bother posting what your system was. Instead of a few rounds of questions, they give you something that either works or can be made to work almost no matter what...
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Get number of days between 2 dates

Gents. Please can u help. I would like to calculate the days between two dates. Example file1 ( previous date) file1 - Input file 9/29/2010 10195 9/29/2010 1057 2/2/2016 10 2/2/2016 10169 2/2/2016 1057 2/3/2016 10005 2/3/2016 10014 In file2 I add the actual date using this code.... (9 Replies)
Discussion started by: jiam912
9 Replies

2. UNIX for Advanced & Expert Users

How to get the sunday days between two dates?

Hi Am using Unix Ksh I have a two date input as DATE1=02/12/2012 DATE2=30/12/2012 I Need the output as only sunday date 02/12/2012 09/12/2012 16/12/2012 23/12/2012 30/12/2012 can anyone pls help me.. thanks in advance... (2 Replies)
Discussion started by: Venkatesh1
2 Replies

3. Shell Programming and Scripting

How to Calculate the difference between two dates?

I want the difference between two following date using scripts in terms of no.of days. How I can accomplish this. lastdate=Tue Nov 13 10:30:56 2012 currdate=Wed Dec 15 15:58:21 PAKST 2012 Ouput should be like this: Your Password will expire after = 32 Days on Wed Dec 15 15:58:21 PAKST... (1 Reply)
Discussion started by: m_raheelahmed
1 Replies

4. Shell Programming and Scripting

Calculate the number of days between 2 dates - bash script

I wrote the day calculator also in bash. I would like to now, that is it good so? #!/bin/bash datum1=`date -d "1991/1/1" "+%s"` datum2=`date "+%s"` diff=$(($datum2-$datum1)) days=$(($diff/(60*60*24))) echo $days Thanks in advance for your help! (3 Replies)
Discussion started by: kovacsakos
3 Replies

5. Web Development

Calculate the number of days between 2 dates - PHP

Is this code good for this purpose? <?php $date1 = mktime(0,0,0,01,01,1991); $date2 = mktime(0,0,0,03,22,2012); $diff = $date2 - $date1; $days = $diff / (60*60*24); echo ($days . "<br />"); ?> (3 Replies)
Discussion started by: kovacsakos
3 Replies

6. Shell Programming and Scripting

days are between the two dates?

I have two times in the format of YYMMDD. Does anyone know an easy way in ksh for me to display how many days are between the two dates? Example1: X=101202 Y=101205 There are 3 days between X & Y Example2: X=101202 Y=111202 There are 365 days between X & Y Example3: X=101205... (3 Replies)
Discussion started by: oldman2
3 Replies

7. Shell Programming and Scripting

Get number of days between given dates

Hi I need one single command to get number of days between two given dates.datecalc is not working. ex. fromdate:01.04.2010 todate :24.04.2010 i should get the out put as 23 Thanks in advance (4 Replies)
Discussion started by: suryanarayana
4 Replies

8. Shell Programming and Scripting

How to calculate specific hours between 2 dates

Hi there, I am trying to find out a way to calculate how many hours are between 2 dates but from a specific time range, actually working hours (Monday to Friday 09:00 - 18:00). What I mean is for example date1 = Monday 21 July 2008 22:00:00 so in python 2008-07-21 22:00:00 date2 = Wednesday... (5 Replies)
Discussion started by: sickboy
5 Replies

9. Shell Programming and Scripting

Difference between two dates in no of days ???

Hi All How to get the difference between two dates in no of days ??? My date format is like this YYYY/MM/DD. I have to get the no of days between two dates in the given format. I tried to search the forum but nothing came up similar to my requitement. Your help will be appreciated. ... (1 Reply)
Discussion started by: csaha
1 Replies

10. UNIX for Dummies Questions & Answers

days elapsed between 2 dates

does anybody know how to find out the number of days elapsed between 2 dates e.g. days elapsed between 020212 and 020110 (YYMMDD format) Thanking you in advance. Ravi. (1 Reply)
Discussion started by: rkkiran
1 Replies
Login or Register to Ask a Question