home *** CD-ROM | disk | FTP | other *** search
- /*****
- datecmp()
-
- This function returns the number of days that have elapsed between
- two dates. The number of days between Jan. 1 (1) and Nov. 11 (315)
- in a non-leap year is treated as 314. If you disagree, you can change
- this function accordingly.
-
- Argument list: int d1 the day for year 1
- int m1 " month "
- int y1 " year "
- int d1 the day for year 2
- int m1 " month "
- int y1 " year "
-
- Return value: unsigned int the number of days from date1 to date2
-
- *****/
-
- #include <stdlib.h>
-
- unsigned int datecmp(int d1, int m1, int y1, int d2, int m2, int y2)
- {
- int i, max, min, t1, t2, years = 0;
-
- t1 = julian(d1, m1, y1);
- t2 = julian(d2, m2, y2);
-
- if (y1 != y2) { /* Must go across years */
- if (y1 > y2) {
- max = y1;
- min = y2;
- t2 = julian(31, 12, y2) - t2; /* Days to end of year */
- } else {
- max = y2;
- min = y1;
- t1 = julian(31, 12, y2) - t1;
- }
- for (i = max; i > min + 1; i--) { /* For all years */
- years += 365 + leapyear(i);
- }
- } else {
- t1 = julian(d1, m1, y1);
- t2 = julian(d2, m2, y2);
- return (abs(t1 - t2));
- }
- return (t1 + t2 + years + 1);
- }
-