7 #include <grass/datetime.h>
9 static void make_incr();
85 for (pos = dtfrom; pos < from; pos++) {
88 dt->month += dt->year * 12;
92 dt->hour += dt->day * 24;
96 dt->minute += dt->hour * 60;
100 dt->second += dt->minute * 60.0;
116 for (carry = 0, pos = dt->to; carry == 0 && pos > to; pos--) {
130 case DATETIME_MINUTE:
134 case DATETIME_SECOND:
142 make_incr(&incr, to, to, dt);
162 for (pos = dt->to; pos > to; pos--) {
163 make_incr(&incr, pos, pos, dt);
165 incr.year = dt->year;
166 incr.month = dt->month;
167 incr.day = dt->day + ndays / 2;
168 incr.hour = dt->hour;
169 incr.minute = dt->minute;
170 incr.second = dt->second;
173 if (ndays > 0 && pos == DATETIME_DAY)
180 for (pos = from; pos < dtfrom; pos++)
194 case DATETIME_MINUTE:
197 case DATETIME_SECOND:
202 for (pos = to; pos > dt->to; pos--)
216 case DATETIME_MINUTE:
219 case DATETIME_SECOND:
225 if (dt->to < DATETIME_SECOND)
234 static void make_incr(DateTime * incr,
int from,
int to, DateTime * dt)