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,你試過的代碼在哪? –