Sponsored Content
Top Forums Shell Programming and Scripting Days difference between two dates Post 302174306 by jim mcnamara on Monday 10th of March 2008 05:37:51 PM
Old 03-10-2008
try this to start - note you have to handle cross-years eg 2007 -> 2008
Code:
#!/bin/ksh
yday()
{
        perl -e '
                use POSIX qw(strftime);
                $fmt = "%j";  # %j day of year 1 - 366
                $mday = substr("$ARGV[0]", 8, 2);
                $mon =  substr("$ARGV[0]", 5 ,2);
                $year = substr("$ARGV[0]", 0 ,4);                  
                $weekday =
                  strftime($fmt, 0, 0, 0, $mday , $mon - 1, $year - 1900, -1, -1, -1);
                print int $weekday;
                ' "$1"
}

today=$( yday 2008-03-10 )
oldat=$( yday 2008-01-03 )
ddiff=$(( $today - $oldat ))
echo "$ddiff"

 

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

4. UNIX for Dummies Questions & Answers

using 'date' to get previous days' dates

I am familiar with using the 'date' command to get the current date but I have a situation where I need to get the previous day's date as well as the date two days prior. Theoretically I could use 'expr' to compute these values but I need it to work in instances where the previous month's dates... (2 Replies)
Discussion started by: slant-40
2 Replies

5. UNIX for Dummies Questions & Answers

display all dates 200 days back

i need help! can someone help me please? i try to calculate date under unix (ksh)...AIX operating system. I have to find the date 200 days from today's date. then the script should loop 200 times and display on command line every day's date until the current date. example: todays date:... (1 Reply)
Discussion started by: pavan_test
1 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. 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

9. Shell Programming and Scripting

Difference in dates in days (ksh shell)

Hi Guys, Need a small help, how do i get the difference between two dates (in days) in KSH shell My date is in mm/dd/YYYY format, Is there a function to get time stamp from the respective date and time ( mm/dd/yyyy HH:MM:SS) (1 Reply)
Discussion started by: selvankj
1 Replies

10. 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
CALENDAR(3)						   BSD Library Functions Manual 					       CALENDAR(3)

NAME
easterg, easterog, easteroj, gdate, jdate, ndaysg, ndaysj, week, weekday -- Calendar arithmetic for the Christian era LIBRARY
Calendar Arithmetic Library (libcalendar, -lcalendar) SYNOPSIS
#include <calendar.h> struct date * easterg(int year, struct date *dt); struct date * easterog(int year, struct date *dt); struct date * easteroj(int year, struct date *dt); struct date * gdate(int nd, struct date *dt); struct date * jdate(int nd, struct date *dt); int ndaysg(struct date *dt); int ndaysj(struct date *dt); int week(int nd, int *year); int weekday(int nd); DESCRIPTION
These functions provide calendar arithmetic for a large range of years, starting at March 1st, year zero (i.e., 1 B.C.) and ending way beyond year 100000. Programs should be linked with -lcalendar. The functions easterg(), easterog() and easteroj() store the date of Easter Sunday into the structure pointed at by dt and return a pointer to this structure. The function easterg() assumes Gregorian Calendar (adopted by most western churches after 1582) and the functions easterog() and easteroj() compute the date of Easter Sunday according to the orthodox rules (Western churches before 1582, Greek and Russian Orthodox Church until today). The result returned by easterog() is the date in Gregorian Calendar, whereas easteroj() returns the date in Julian Calendar. The functions gdate(), jdate(), ndaysg() and ndaysj() provide conversions between the common "year, month, day" notation of a date and the "number of days" representation, which is better suited for calculations. The days are numbered from March 1st year 1 B.C., starting with zero, so the number of a day gives the number of days since March 1st, year 1 B.C. The conversions work for nonnegative day numbers only. The gdate() and jdate() functions store the date corresponding to the day number nd into the structure pointed at by dt and return a pointer to this structure. The ndaysg() and ndaysj() functions return the day number of the date pointed at by dt. The gdate() and ndaysg() functions assume Gregorian Calendar after October 4, 1582 and Julian Calendar before, whereas jdate() and ndaysj() assume Julian Calendar throughout. The two calendars differ by the definition of the leap year. The Julian Calendar says every year that is a multiple of four is a leap year. The Gregorian Calendar excludes years that are multiples of 100 and not multiples of 400. This means the years 1700, 1800, 1900, 2100 are not leap years and the year 2000 is a leap year. The new rules were inaugurated on October 4, 1582 by deleting ten days following this date. Most catholic countries adopted the new calendar by the end of the 16th century, whereas others stayed with the Julian Calendar until the 20th century. The United Kingdom and their colonies switched on September 2, 1752. They already had to delete 11 days. The function week() returns the number of the week which contains the day numbered nd. The argument *year is set with the year that contains (the greater part of) the week. The weeks are numbered per year starting with week 1, which is the first week in a year that includes more than three days of the year. Weeks start on Monday. This function is defined for Gregorian Calendar only. The function weekday() returns the weekday (Mo = 0 .. Su = 6) of the day numbered nd. The structure date is defined in <calendar.h>. It contains these fields: int y; /* year (0000 - ????) */ int m; /* month (1 - 12) */ int d; /* day of month (1 - 31) */ The year zero is written as "1 B.C." by historians and "0" by astronomers and in this library. SEE ALSO
ncal(1), strftime(3) STANDARDS
The week number conforms to ISO 8601: 1988. HISTORY
The calendar library first appeared in FreeBSD 3.0. AUTHORS
This manual page and the library was written by Wolfgang Helbig <helbig@FreeBSD.org>. BUGS
The library was coded with great care so there are no bugs left. BSD
November 29, 1997 BSD
All times are GMT -4. The time now is 05:11 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy