예제 #1
0
파일: time.c 프로젝트: plujon/hrs3-c
status time_parse(a_time *out, const char *s, size_t len)
{
  memset(out, 0, sizeof(a_time));
  if (len < time_string_length()) {
    return NO;
  }
  int year = s_to_d(s, 4, 0); s += 4;
  int mon = s_to_d(s, 2, 0); s += 2;
  if (mon <= 0 || 13 <= mon) return NO;
  int day = s_to_d(s, 2, 0); s += 2;
  if (day < 0 ||  days_in_mon(mon, year) < day) return NO;
  int hour = s_to_d(s, 2, 0); s += 2;
  if (hour < 0 || 24 <= hour) return NO;
  int minute = s_to_d(s, 2, 0); s += 2;
  if (minute < 0 || 60 <= minute) return NO;
  int second = s_to_d(s, 2, 0); /* s += 2; scan-build: dead increment */
  time_copy(out, time_now());
  if (!time_ymdhms(out, year, mon, day, hour, minute, second))
    return NO;
  return OK;
}
예제 #2
0
constant_transducer::constant_transducer(const string &p) {

	value = 0.;
	if (!s_to_d(p, value))  param = p;

}