Sponsored Content
Top Forums Shell Programming and Scripting Get number of days between 2 dates Post 302997564 by AbelLuis on Tuesday 16th of May 2017 01:08:56 PM
Old 05-16-2017
Hi all,
there is an ancient formula that convert quickly a "gregorian" date (month, day, year) to "julian" date (number of days from January 1 of year 1).

This is the implementation in awk.

File greg_to_jul.awk:

Code:
BEGIN {
    limes="31,59,90,120,151,181,212,243,273,304,334,365";
    split(limes, vlim, ",");
    vlim[0]=0;
}

function julian(d,m,a)
{
    bis=(a%4==0 && a%100 != 0 || a%400 == 0);
    da=(a-1)*365+int((a-1)/4)-int((a-1)/100)+int((a-1)/400);
    dm=vlim[m-1]+(m>2 && bis);
    return(da+dm+d);
}

{
 split ($3, v3, "/");
 split ($1, v1, "/");

 printf "%s, %s, %s, %d\n", $1, $2, $3, julian(v3[2], v3[1], v3[3]) - julian(v1[2], v1[1], v1[3]);
}

So, you can obtain your exact results (the second set of they):

Code:
awk -f greg_to_jul.awk file2

The user time was 1 ms, versus 60 ms of the previous version.

Regards.

Last edited by AbelLuis; 05-17-2017 at 01:16 AM..
This User Gave Thanks to AbelLuis For This Post:
 

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. Shell Programming and Scripting

Find number of days and list out the dates in between

Hi All, Can unix cshell list out the number of days between 070201 and 070205 (format is yymmdd) and list out all the dates in between in similiar format. set startdate = `date '+%y%m%d'` #eg 070201 set enddate = `date '+%y%m%d'` #eg 070205 i would expect the number of days to be 5... (2 Replies)
Discussion started by: Raynon
2 Replies

4. UNIX for Advanced & Expert Users

Number of days between two distinct dates

Hi I'm looking for a .ksh script/function that will calculate ONLY the number of days between two distinct dates. Further convert the number of days to weeks and display. I need this to be part of another larger script that checks the password expiry on several servers and notifies the... (1 Reply)
Discussion started by: radheymohan
1 Replies

5. Shell Programming and Scripting

Days difference between two dates

Hello, I would like to find out the number of days between two dates of the format yyyy-mm-dd. Any help on this is highly appreciated. Thanks. (6 Replies)
Discussion started by: Data469
6 Replies

6. 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

7. 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

8. 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

9. 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

10. 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
STRIPCHART(5)							File Formats Manual						     STRIPCHART(5)

NAME
stripchart - draws diagrams from data with PHP SYNOPSIS
The script is expected to be called as a CGI script but also works from the command line. DESCRIPTION
Stripchart prepares a series of diagrams directly from raw data. It is handy for web pages that need some graphics without too much over- head. OPTIONS
-i input FILE name of input data file (mandatory) -o output FILE name of output .gif file (default: STDOUT) -O output FILE name of output .gif file, also dumps to STDOUT -f from TIME stripchart with data starting at TIME (default: 24 hours ago) -t to TIME stripchart with data ending at TIME (default: now) -r range RANGE stripchart data centered around "from" time the size of RANGE (overrides -t) -l last LINES stripchart last number of LINES in data file (overrides -f and -t and -r) -T title TITLE title to put on graphic (default: FILE RANGE) -x column X time or "x" column (default: 2) -y column Y value or "y" column (default: 3) -Y column Y' overplot second "y" column (default: none) -b baseline VALUE overplot baseline of arbitrary value VALUE -B baseline-avg overrides -b, it plots baseline of computed average -d dump low VALUE ignore data less than VALUE -D dump high VALUE ignore data higher than VALUE -v verbose puts verbose runtime output to STDERR -L log makes y axis log scale -c colors "COLORS" set gnuplot colors for graph/axisnts/data (default: "xffffff x000000 xc0c0c0 x00a000 x0000a0 x2020c0" in order: bground, axisnts, grids, pointcolor1,2,3) -C cgi output CGI header to STDOUT if being called as CGI -s stats turn extra plot stats on (current, avg, min, max) -j julian times time columns is in local julian date (legacy stuff) -V version print version number and exit -h help display this help NOTES
* TIME either unix date, julian date, or civil date in the form: YYYY:MM:DD:HH:MM (year, month, day, hour, minute) If you enter something with colons, it assumes it is civil date If you have a decimal point, it assumes it is julian date If it is an integer, it assumes it is unix date (epoch seconds) If it is a negative number, it is in decimal days from current time (i.e. -2.5 = two and a half days ago) * All times on command line are assumed to be "local" times * All times in the data file must be in unix date (epoch seconds) * RANGE is given in decimal days (i.e. 1.25 = 1 day, 6 hours) * if LINES == 0, (i.e. -l 0) then the whole data file is read in * columns (given with -x, -y, -Y flags) start at 1 * titles given with -T can contain the following key words which will be converted: FILE - basename of input file RANGE - pretty civil date range (in local time zone) the default title is: FILE RANGE AUTHORS
Matt Lebofsky 2.21 November 2002 STRIPCHART(5)
All times are GMT -4. The time now is 05:46 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy