需求大概是:
檢索設備錄像文件,通過時間段檢索,文件名以 前綴_日期_時間.mp4 爲準
分別提取 文件名裏面的 年、月、日、時、分,再檢測是否在某個時間段
附上檢測部分,是否完善,待測
969 #if 1
970 // 計算文件時間 轉換成秒
971 // date -d "2010-10-18 00:00:00" +%s
972 sprintf(str_sec, "date -d \"%d-%d-%d %d:%d:00\" +%%s", m_year, m_month, m_day, m_hour, m_minute);
973 //trace("str_sec: %s", str_sec);
974 if ((ptr = popen(str_sec, "r")) != NULL) {
975 if (!fread(result, sizeof(char), sizeof(result), ptr)) {
976 trace("fread %s failed", str_sec);
977 return 0;
978 }
979
980 } else {
981 trace("popen %s failed", str_sec);
982 return 0;
983 }
984 diff = atol(result);
985
986 // ceiling 轉換成秒
987 memset(str_sec, 0, sizeof(str_sec));
988 memset(result, 0, sizeof(result));
989 sprintf(str_sec, "date -d \"%d-%d-%d %d:%d:00\" +%%s", ceiling.u32Year, ceiling.u32Month, ceiling.u32Day, ceiling.u32Hour, ceiling.u32Minute);
990 if ((ptr = popen(str_sec, "r")) != NULL) {
991 if (!fread(result, sizeof(char), sizeof(result), ptr)) {
992 trace("fread %s failed", str_sec);
993 return 0;
994 }
995
996 } else {
997 trace("popen %s failed", str_sec);
998 return 0;
999 }
1000 m_ceiling = atol(result);
1001
1002 // floor 轉換成秒
1003 memset(str_sec, 0, sizeof(str_sec));
1004 memset(result, 0, sizeof(result));
1005 sprintf(str_sec, "date -d \"%d-%d-%d %d:%d:00\" +%%s", floor.u32Year, floor.u32Month, floor.u32Day, floor.u32Hour, floor.u32Minute);
1006 if ((ptr = popen(str_sec, "r")) != NULL) {
1007 if (!fread(result, sizeof(char), sizeof(result), ptr)) {
1008 trace("fread %s failed", str_sec);
1009 return 0;
1010 }
1011
1012 } else {
1013 trace("popen %s failed", str_sec);
1014 return 0;
1015 }
1016 m_floor = atol(result);
1017
1018 if (diff >= m_ceiling && diff <= m_floor) {
1019 return 1;
1020 } else {
1021 return 0;
1022 }
1023 #endif