我想实行考勤制度。我有两个列表,我已经把它们转换成Unix时间戳。一个列表包含固定的时间表,另一个是学生的日志,如果他们打卡的话。你知道吗
例如,时间表清单可能包括
timetable[1519650000, 1519740000, 1519743600]
timetableEnd[1519653600, 1519743600, 1519747200]
log[1519739987, 1519744087]
以人类可读的方式,但不是在代码中
timetable[2018-02-26 13:00:00, 2018-02-27 14:00:00, 2018-02-27 15:00:00]
timetableEnd[2018-02-26 14:00:00, 2018-02-27 15:00:00, 2018-02-27 16:00:00]
log[2018-02-27 13:59:47, 2018-02-27 15:08:07]
循环每个日志元素以检查符合此条件的时间表元素的方法
a <= x <= b
Where a = timetable begin time - 5mins
x = log time
b = end time for timetable time
Example: (1519650000 - 300) <= x <= 1519653600
return false since log doesnt have a value that satisfy this
我可以得到一些建议或指导,我应该如何进行这项工作。你知道吗
你为什么不用datetime? 用这样的东西
logtime是x的日期时间 begintime是从 到达时间比开始时间早5分钟
可以使用
zip(a[:-1], a[1:])
模式构建列表的相邻元素对,也可以使用zip(a, b)
模式将两个等长列表的元素配对。使用这两种方法,您可以尝试:在您的例子中,这不会成功,因为
log[1]
不在timetable[1]-300
和timetable[2]
之间。你知道吗如果您不熟悉Python优雅的函数风格,您可能会发现用这种(不那么优雅的)方式来理解它更容易:
相关问题 更多 >
编程相关推荐