例题描述和简单分析
有csv文件csv.csv,数据如下所示:
2021-02-02 00:00:00
2021-02-02 01:00:00
2021-02-02 02:00:00
2021-02-02 03:00:00
2021-02-02 04:00:00
2021-02-02 05:00:00
2021-02-02 06:00:00
2021-02-02 07:00:00
2021-02-02 08:00:00
2021-02-02 10:00:00
...
从2021-02-02 00:00:00至2021-03-03 23:00:00,已排序,以1小时为间隔,有30天的数据,理论上每天24条,但实际上有遗漏,需要找出遗漏的日期时间,结果如下:
2021-02-02 09:00:00
2021-02-02 14:00:00
2021-02-03 06:00:00
2021-02-03 09:00:00
2021-02-03 11:00:00
2021-02-03 17:00:00
2021-02-03 18:00:00
2021-02-03 19:00:00
2021-02-03 20:00:00
2021-02-03 23:00:00
...
解法及简要说明
在集算器中编写脚本p1.dfx,如下所示:
A | |
1 | =periods@s("2021-02-02 00:00:00","2021-03-03 23:00:00",3600) |
2 | =file("csv.csv").import@ci() |
3 | =A1\A2 |
简要说明:
A1 列出从2021-02-02 00:00:00至2021-03-03 23:00:00间隔为1小时的所有日期时间
A2 读取csv文件中的日期时间数据
A3 计算A1与A2的差集
JAVA 集成这段代码的方法可参考:《Java 如何调用 SPL 脚本》。