Lines Matching refs:ptime
83 static int parse8601(struct ptime_data *ptime, const char *str);
84 static int parseDWM(struct ptime_data *ptime, const char *str);
129 parse8601(struct ptime_data *ptime, const char *s) in parse8601() argument
144 tm = ptime->tm; in parse8601()
145 ptime->tmspec = TSPEC_HOUROFDAY; in parse8601()
151 ptime->tmspec |= TSPEC_YEAR; in parse8601()
156 ptime->tmspec |= TSPEC_MONTHOFYEAR; in parse8601()
160 ptime->tmspec |= TSPEC_DAYOFMONTH; in parse8601()
187 ptime->tmspec |= TSPEC_HOUROFDAY; in parse8601()
201 ptime->tm = tm; in parse8601()
220 parseDWM(struct ptime_data *ptime, const char *s) in parseDWM() argument
229 tm = ptime->tm; in parseDWM()
233 ptime->tmspec = TSPEC_HOUROFDAY; in parseDWM()
241 ptime->tmspec |= TSPEC_HOUROFDAY; in parseDWM()
254 ptime->tmspec |= TSPEC_DAYOFWEEK; in parseDWM()
283 ptime->tmspec |= TSPEC_DAYOFMONTH; in parseDWM()
287 ptime->tmspec |= TSPEC_LDAYOFMONTH; in parseDWM()
315 ptime->tm = tm; in parseDWM()
343 ptime_adjust4dst(struct ptime_data *ptime, const struct ptime_data *dstsrc) in ptime_adjust4dst() argument
347 if (ptime == NULL) in ptime_adjust4dst()
354 adjtime = *ptime; in ptime_adjust4dst()
377 *ptime = adjtime; in ptime_adjust4dst()
382 ptime_relparse(struct ptime_data *ptime, int parseopts, time_t basetime, in ptime_relparse() argument
388 ptime->parseopts = parseopts; in ptime_relparse()
389 ptime->basesecs = basetime; in ptime_relparse()
390 ptime->basetm = *(localtime(&ptime->basesecs)); in ptime_relparse()
391 ptime->tm = ptime->basetm; in ptime_relparse()
392 ptime->tm.tm_hour = ptime->tm.tm_min = ptime->tm.tm_sec = 0; in ptime_relparse()
400 pres = parseDWM(ptime, str); in ptime_relparse()
402 pres = parse8601(ptime, str); in ptime_relparse()
404 ptime->tsecs = (time_t)pres; in ptime_relparse()
415 dpm = days_pmonth(ptime->tm.tm_mon, ptime->tm.tm_year); in ptime_relparse()
417 (ptime->tmspec & TSPEC_DAYOFMONTH) && in ptime_relparse()
418 (ptime->tm.tm_mday> dpm)) { in ptime_relparse()
427 ptime->tm.tm_year, ptime->tm.tm_mon, in ptime_relparse()
428 ptime->tm.tm_mday, ptime->tm.tm_hour, in ptime_relparse()
429 ptime->tm.tm_min, dpm); in ptime_relparse()
430 temp_tm = ptime->tm; in ptime_relparse()
431 ptime->tsecs = mktime(&temp_tm); in ptime_relparse()
432 if (ptime->tsecs > (time_t)-1) in ptime_relparse()
433 ptimeset_nxtime(ptime); in ptime_relparse()
437 ptime->tm.tm_year, ptime->tm.tm_mon, in ptime_relparse()
438 ptime->tm.tm_mday, ptime->tm.tm_hour, in ptime_relparse()
439 ptime->tm.tm_min); in ptime_relparse()
447 ptime->tsecs = mktime(&ptime->tm); in ptime_relparse()
448 if (ptime->tsecs == (time_t)-1) { in ptime_relparse()
449 ptime->tsecs = (time_t)-2; in ptime_relparse()
457 ptime_free(struct ptime_data *ptime) in ptime_free() argument
460 if (ptime == NULL) in ptime_free()
463 free(ptime); in ptime_free()
472 ptimeget_ctime(const struct ptime_data *ptime) in ptimeget_ctime() argument
475 if (ptime == NULL) in ptimeget_ctime()
478 return (ctime(&ptime->tsecs)); in ptimeget_ctime()
494 ptimeget_secs(const struct ptime_data *ptime) in ptimeget_secs() argument
497 if (ptime == NULL) in ptimeget_secs()
500 return (ptime->tsecs); in ptimeget_secs()
510 ptimeset_nxtime(struct ptime_data *ptime) in ptimeset_nxtime() argument
515 if (ptime == NULL) in ptimeset_nxtime()
522 nextmatch = *ptime; in ptimeset_nxtime()
527 if (ptime->tmspec & TSPEC_YEAR) in ptimeset_nxtime()
537 if (ptime->tmspec & TSPEC_MONTHOFYEAR) { in ptimeset_nxtime()
539 if (ptime->tm.tm_mon == 1 && ptime->tm.tm_mday == 29) { in ptimeset_nxtime()
549 } else if (ptime->tmspec & TSPEC_LDAYOFMONTH) { in ptimeset_nxtime()
555 if (ptime->tm.tm_mon < 11) in ptimeset_nxtime()
556 moredays = days_pmonth(ptime->tm.tm_mon + 1, in ptimeset_nxtime()
557 ptime->tm.tm_year); in ptimeset_nxtime()
559 moredays = days_pmonth(0, ptime->tm.tm_year + 1); in ptimeset_nxtime()
561 } else if (ptime->tmspec & TSPEC_DAYOFMONTH) { in ptimeset_nxtime()
563 moredays = days_pmonth(ptime->tm.tm_mon, ptime->tm.tm_year); in ptimeset_nxtime()
569 tmon = ptime->tm.tm_mon; in ptimeset_nxtime()
570 tyear = ptime->tm.tm_year; in ptimeset_nxtime()
579 if (tdpm >= ptime->tm.tm_mday) in ptimeset_nxtime()
584 } else if (ptime->tmspec & TSPEC_DAYOFWEEK) { in ptimeset_nxtime()
586 } else if (ptime->tmspec & TSPEC_HOUROFDAY) { in ptimeset_nxtime()
599 ptime_adjust4dst(&nextmatch, ptime); in ptimeset_nxtime()
602 *ptime = nextmatch; in ptimeset_nxtime()
607 ptimeset_time(struct ptime_data *ptime, time_t secs) in ptimeset_time() argument
610 if (ptime == NULL) in ptimeset_time()
613 ptime->tsecs = secs; in ptimeset_time()
614 ptime->tm = *(localtime(&ptime->tsecs)); in ptimeset_time()
615 ptime->parseopts = 0; in ptimeset_time()