+ struct tm tm_time, *tm_l, *tm_g;
+ time_t now, tl, tg, tr, tz_offset;
+ int i;
+ char *p = tbuf;
+
+ memset(&tm_time,0,sizeof(struct tm));
+ for ( i=0;
+ i<4 && isdigit(*p);
+ i++, p++ )
+ tm_time.tm_year = tm_time.tm_year*10 + (*p-'0');
+ for ( i=0;
+ i<2 && isdigit(*p) && tm_time.tm_mon <= 1;
+ i++, p++ )
+ tm_time.tm_mon = tm_time.tm_mon*10 + (*p-'0');
+ for ( i=0;
+ i<2 && isdigit(*p) && tm_time.tm_mday <= 3;
+ i++, p++ )
+ tm_time.tm_mday = tm_time.tm_mday*10 + (*p-'0');
+ for ( i=0;
+ i<2 && isdigit(*p) && tm_time.tm_hour <= 2;
+ i++, p++ )
+ tm_time.tm_hour = tm_time.tm_hour*10 + (*p-'0');
+ for ( i=0;
+ i<2 && isdigit(*p) && tm_time.tm_min <= 6;
+ i++, p++ )
+ tm_time.tm_min = tm_time.tm_min*10 + (*p-'0');
+ for ( i=0;
+ i<2 && isdigit(*p) && tm_time.tm_sec <= 6;
+ i++, p++ )
+ tm_time.tm_sec = tm_time.tm_sec*10 + (*p-'0');
+