diff options
author | Thomas G. Lockhart | 1999-01-20 16:26:45 +0000 |
---|---|---|
committer | Thomas G. Lockhart | 1999-01-20 16:26:45 +0000 |
commit | 791822e3a773125552d04179b99c3b757bdefd31 (patch) | |
tree | fe2a568d2230e5a9aef902ed115aae98dceac5c7 | |
parent | 974757f19a265ecb7ba490e0b488f17341b8a0d1 (diff) |
Clean up leap year support and date/time validation.
Move declarations to allow sharing between modules.
-rw-r--r-- | src/include/utils/dt.h | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/include/utils/dt.h b/src/include/utils/dt.h index 5b93abac76f..52802d99935 100644 --- a/src/include/utils/dt.h +++ b/src/include/utils/dt.h @@ -8,7 +8,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: dt.h,v 1.33 1998/10/08 18:30:50 momjian Exp $ + * $Id: dt.h,v 1.34 1999/01/20 16:26:45 thomas Exp $ * *------------------------------------------------------------------------- */ @@ -261,6 +261,29 @@ extern int datetime_is_epoch(double j); #define TIME_PREC_INV 1000000.0 #define JROUND(j) (rint(((double) (j))*TIME_PREC_INV)/TIME_PREC_INV) + +/* + * Date/time validation + * Include check for leap year. + */ + +extern int day_tab[2][13]; + +#define isleap(y) (((y % 4) == 0 && (y % 100) != 0) || (y % 400) == 0) + +/* Julian date support for date2j() and j2date() + * Set the minimum year to one greater than the year of the first valid day + * to avoid having to check year and day both. - tgl 97/05/08 + */ + +#define JULIAN_MINYEAR (-4713) +#define JULIAN_MINMONTH (11) +#define JULIAN_MINDAY (23) + +#define IS_VALID_JULIAN(y,m,d) ((y > JULIAN_MINYEAR) \ + || ((y == JULIAN_MINYEAR) && ((m > JULIAN_MINMONTH) \ + || ((m == JULIAN_MINMONTH) && (d >= JULIAN_MINDAY))))) + /* * dt.c prototypes */ |