c语言中时间检测性,C语言 日期区间检测

需求大概是:

检索设备录像文件,通过时间段检索,文件名以 前缀_日期_时间.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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值