0
我有时间格式,看起来像这样:解析时间段
10:30-12:30,18:00-00:30 Mo-We,Th,Sa
和
Mo-Fr 08:00-13:30; Sa 08:00-12:30
有任何简单,快捷的方式来解析这个?我需要一个函数来比较这种格式的当前时间。
这是标准格式吗?
我有时间格式,看起来像这样:解析时间段
10:30-12:30,18:00-00:30 Mo-We,Th,Sa
和
Mo-Fr 08:00-13:30; Sa 08:00-12:30
有任何简单,快捷的方式来解析这个?我需要一个函数来比较这种格式的当前时间。
这是标准格式吗?
不,它不是标准格式。我会尝试在几个关键部位分割你的问题:
1)数据存储:
既然问题被限制在一周的日子里,你可以创建对tm structs的数组一周的每一天:
#include <time.h>
typedef tm interval[2];
typedef interval* daysofweek[7];
void main(void)
{
int number_of_intervals = 2; //this must be calculated for each day but to exemplify how you could store your data I initialised it to 2
interval *intervals;
intervals = (interval*)malloc(number_of_intervals);
daysofweek d;
d[0] = intervals; //you must set the intervals for each day
}
2)解析
你应该定义一个基于字符串的sintax一组规则。从两个字符串你的例子我将定义以下规则:
;
字符的所有字符串-
,:
和,
)的一部分分别是带字符的部分3)比较
之后填充了数据结构,则可以解析它并推断,如果你在一个间隔或不通过使用ctime找到的比较函数。
HTH, JP。
P.S.如果你使用C++和STL而不是普通的C,那么任务会更容易一些。
twoface88,你试过的代码在哪? –