Sponsored Content
Full Discussion: compaision of dates
Top Forums Programming compaision of dates Post 302122986 by jim mcnamara on Friday 22nd of June 2007 10:52:12 AM
Old 06-22-2007
Since this is a C forum, one way using C to compare dates using libc:

Code:
#include <time.h>
/****************************
date_compar ()
parameters:
       date1 and date2 - dates to compare
       fmt - format (see man date) of the date string
       full_day - (because date + time causes intermediate value)
               0 == include seconds in differences 
               1 == do not include seconds, only compare days
returns:
     0- parameters are equal
     1- date1 is more recent
  (-1)- date2 is more recent
  
     assumes dates are valid
*********************************/
int date_compar(const char *date1, 
                const char *date2, 
                const char *fmt, 
                const int full_day)
{
	struct tm tmp;
	time_t one=0;
	time_t two=0;
	int retval=0;
	
	strptime(date1, fmt, &tmp);
	one=mktime(&tmp);
	strptime(date2, fmt, &tmp);
	two=mktime(&tmp);
	if( full_day==1)
	{
		one/=86400; /* convert seconds to days */
		two/=86400;
	}
    if (one > two)
    	retval =1;
    if(two > one)
    	retval=(-1);
    return retval;			
}

int main()
{
	char *date1="17:06:2007";
	char *date2="18:06:2007";
	char *fmt="%d:%m:%Y";
	int result=date_compar(date1, date2, fmt, 0);
	char chresult=' ';
	
	chresult=(result==0)? '=': (result > 0)? '>': '<';
	printf("%s %c %s\n", date1, chresult, date2);
	return 0;
}

The other way is to use a Julian Day algorithm (like ACM 199) to convert a Gregorian date to a JD, then compare JD values.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need script to generate all the dates in DDMMYY format between 2 dates

Hello friends, I am looking for a script or method that can display all the dates between any 2 given dates. Input: Date 1 290109 Date 2 010209 Output: 300109 310109 Please help me. Thanks. :):confused: (2 Replies)
Discussion started by: frozensmilz
2 Replies

2. Shell Programming and Scripting

Difference between two dates

Hi! I have two parameters like this: YYYY-MM-DD YYYY-MM-DD My question is, there is a direct command for get the elapsed time between the 2 dates, or I have to find another way? Thx! (1 Reply)
Discussion started by: MalaTomi
1 Replies

3. Programming

Dates in C

Hello, I am working on a program in C and need to read, write and manage Dates (YYY-MM-DD HH:MM). I have made my own version of a structure to store the date data and something else. Do you recommend me to use the time.h library? In such case, is it worthwhile to have an structure containing... (1 Reply)
Discussion started by: Ister
1 Replies

4. Programming

SQL: find if a set od dates falls in another set of dates

Don't know if it is important: Debian Linux / MySQL 5.1 I have a table: media_id int(8) group_id int(8) type_id int(8) expiration date start date cust_id int(8) num_runs int(8) preferred_time int(8) edit_date timestamp ON UPDATE CURRENT_TIMESTAMP id... (0 Replies)
Discussion started by: vertical98
0 Replies

5. Emergency UNIX and Linux Support

Replacing dates]] with (dates)]]

Hi guys, For my wiki site I need to fix 1400 pages that use the wrong date format, most pages (not all) use eg. 1988]] I need to change that to (1988)]] The date range goes back to 1400 so I guess I need to do the following ssh into my server, dump mysql database vi .sql dump search... (20 Replies)
Discussion started by: lawstudent
20 Replies

6. UNIX for Dummies Questions & Answers

How to write the dates between 2 dates into a file

Hi All, I am trying to print the dates that falls between 2 date variables into a file. Here is the example. $BUS_DATE =20120616 $SUB_DATE=20120613 Output to file abc.txt should be : 20120613,20120614,120120615,20120616 Can you pls help me accomplish this in LINUX. Thanks... (5 Replies)
Discussion started by: dsfreddie
5 Replies

7. Shell Programming and Scripting

Generating dates between two dates

HI, i have row like this HHH100037440313438961000201001012012073110220002 N in this i have 2 dates in pos 25-32 and 33-40 , so based upon the se two dates , i need to generated records between these two values so in the above record 20100101 and 20120731 need to genearte rows like this... (4 Replies)
Discussion started by: sathishsr
4 Replies

8. UNIX for Advanced & Expert Users

How to get the Missing dates between two dates in the table?

Hi Am Using Unix Ksh ... I have a Table called date select * from date ; Date 01/02/2013 06/02/2013 I need the output as Missing Date 01/02/2013 02/02/2013 03/02/2013 04/02/2013 05/02/2013 06/02/2013 (2 Replies)
Discussion started by: Venkatesh1
2 Replies

9. Shell Programming and Scripting

How to get dates between two dates?

HI, to my shell script i pass two parameters date1 and date2 is there any way to get all dates betwen these two dates? if i pass 20130714 and 20130717 i need to get below dates 20130715 20130716 is it possible. thanks (3 Replies)
Discussion started by: ulab
3 Replies

10. Shell Programming and Scripting

Display dates between two dates

Hi All, I have 2 dates in mm/dd format. sdate=10/01 (October 01) edate=10/10 (October 10) I need the dates in between these 2 dates like below. 10/01 10/02 10/03 10/04 10/05 10/06 10/07 10/08 (1 Reply)
Discussion started by: jayadanabalan
1 Replies
CHDIST(1)																 CHDIST(1)

NAME
chdist - script to easily play with several distributions SYNOPSIS
chdist [options] [command] [command parameters] DESCRIPTION
chdist is a rewrite of what used to be known as 'MultiDistroTools' (or mdt). Its use is to create 'APT trees' for several distributions, making it easy to query the status of packages in other distribution without using chroots, for instance. OPTIONS
-h, --help Provide a usage message. -d, --data-dir DIR Choose data directory (default: $HOME/.chdist/). -a, --arch ARCH Choose architecture (default: `dpkg --print-architecture`). --version Display version information. COMMANDS
create DIST [URL RELEASE SECTIONS] Prepare a new tree named DIST apt-get DIST <update|source|...> Run apt-get inside DIST apt-cache DIST <show|showsrc|...> Run apt-cache inside DIST apt-rdepends DIST [...] Run apt-rdepends inside DIST src2bin DIST SRCPKG List binary packages for SRCPKG in DIST bin2src DIST BINPKG List source package for BINPKG in DIST compare-packages DIST1 DIST2 [DIST3, ...] compare-bin-packages DIST1 DIST2 [DIST3, ...] List versions of packages in several DISTributions compare-versions DIST1 DIST2 compare-bin-versions DIST1 DIST2 Same as compare-packages/compare-bin-packages, but also runs dpkg --compare-versions and display where the package is newer. compare-src-bin-packages DIST Compare sources and binaries for DIST compare-src-bin-versions DIST Same as compare-src-bin-packages, but also run dpkg --compare-versions and display where the package is newer grep-dctrl-packages DIST [...] Run grep-dctrl on *_Packages inside DIST grep-dctrl-sources DIST [...] Run grep-dctrl on *_Sources inside DIST list List available DISTs COPYRIGHT
This program is copyright 2007 by Lucas Nussbaum and Luk Claes. This program comes with ABSOLUTELY NO WARRANTY. It is licensed under the terms of the GPL, either version 2 of the License, or (at your option) any later version. Debian Utilities 2013-12-23 CHDIST(1)
All times are GMT -4. The time now is 06:47 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy