GRASS Programmer's Manual  6.4.2(2012)
incr2.c
Go to the documentation of this file.
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 }
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines