|
9 | 9 | * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group |
10 | 10 | * Portions Copyright (c) 1994, Regents of the University of California |
11 | 11 | * |
12 | | - * $Id: datetime.h,v 1.40 2003/07/1700:55:37 tgl Exp $ |
| 12 | + * $Id: datetime.h,v 1.41 2003/07/1722:28:42 tgl Exp $ |
13 | 13 | * |
14 | 14 | *------------------------------------------------------------------------- |
15 | 15 | */ |
@@ -237,17 +237,21 @@ extern intday_tab[2][13]; |
237 | 237 | #defineisleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0)) |
238 | 238 |
|
239 | 239 | /* Julian date support for date2j() and j2date() |
240 | | - * Set the minimum year to one greater than the year of the first valid day |
241 | | - *to avoid having to check year and day both. - tgl 97/05/08 |
| 240 | + * |
| 241 | + * IS_VALID_JULIAN checks the minimum date exactly, but is a bit sloppy |
| 242 | + * about the maximum, since it's far enough out to not be especially |
| 243 | + * interesting. |
242 | 244 | */ |
243 | 245 |
|
244 | 246 | #defineJULIAN_MINYEAR (-4713) |
245 | 247 | #defineJULIAN_MINMONTH (11) |
246 | 248 | #defineJULIAN_MINDAY (24) |
| 249 | +#defineJULIAN_MAXYEAR (5874898) |
247 | 250 |
|
248 | | -#defineIS_VALID_JULIAN(y,m,d) (((y) > JULIAN_MINYEAR) \ |
249 | | - || (((y) == JULIAN_MINYEAR) && (((m) > JULIAN_MINMONTH) \ |
250 | | - || (((m) == JULIAN_MINMONTH) && ((d) >= JULIAN_MINDAY))))) |
| 251 | +#defineIS_VALID_JULIAN(y,m,d) ((((y) > JULIAN_MINYEAR) \ |
| 252 | + || (((y) == JULIAN_MINYEAR) && (((m) > JULIAN_MINMONTH) \ |
| 253 | + || (((m) == JULIAN_MINMONTH) && ((d) >= JULIAN_MINDAY))))) \ |
| 254 | + && ((y) < JULIAN_MAXYEAR)) |
251 | 255 |
|
252 | 256 | #defineUTIME_MINYEAR (1901) |
253 | 257 | #defineUTIME_MINMONTH (12) |
|