之前写过一篇空教室查询器,这里再记一下查询逻辑。

怎么判断有没有课

项目使用 Flask。查询接口接收日期、楼栋和起止节次,遍历楼层和教室的课程安排,排除时间有交集的教室。

把查询节次记作闭区间 [a, b],课程节次记作 [c, d]。两者不重叠的情况是 b < c 或 a > d;除此之外就存在重叠。这样包含、部分交叉和边界相接都可以用同一条规则处理。

课表和现场状态

当天的查询还会尝试补充现场占用信息和部分环境指标。课表反映的是排课安排,现场数据则是某个时刻的观测;没有排课并不一定代表教室里没有人。

学校接口的字段、权限和可用性可能变化,这次没有重新查询接口。使用时还是要以实际情况为准。

相关链接

项目仓库 · 查询代码