GRASS Programmer's Manual
6.4.2(2012)
|
00001 /* 00002 * Copyright (C) 1995. Bill Brown <brown@gis.uiuc.edu> & Michael Shapiro 00003 * 00004 * This program is free software under the GPL (>=v2) 00005 * Read the file GPL.TXT coming with GRASS for details. 00006 */ 00007 #include <grass/datetime.h> 00008 00009 00021 int datetime_is_valid_increment(const DateTime * src, const DateTime * incr) 00022 { 00023 return datetime_check_increment(src, incr) == 0; 00024 } 00025 00026 00027 00060 int datetime_check_increment(const DateTime * src, const DateTime * incr) 00061 { 00062 if (!datetime_is_valid_type(src)) 00063 return 1; 00064 if (!datetime_is_valid_type(incr)) 00065 return 2; 00066 00067 if (!datetime_is_relative(incr)) 00068 return datetime_error(-1, "datetime increment mode not relative"); 00069 if (incr->to > src->to) 00070 return datetime_error(-2, "datetime increment too precise"); 00071 00072 if (datetime_in_interval_year_month(src->to) && 00073 !datetime_in_interval_year_month(incr->to)) 00074 return datetime_error(-3, "illegal datetime increment interval"); 00075 00076 if (datetime_in_interval_day_second(src->to) && 00077 !datetime_in_interval_day_second(incr->to)) 00078 return datetime_error(-4, "illegal datetime increment interval"); 00079 00080 return 0; 00081 }