我正在寻找有效的功能来获得Q的第一天.喜欢2017.05.10 -> 2017.01.01或者2016.08.19 -> 2016.01.01.
下一个片段有效,但效率不高
{"D"$(string `year$x),".01.01"} .z.d
Run Code Online (Sandbox Code Playgroud)
这种计算的一个常见技巧是使用与日期不同的事实,月份非常规律:每年恰好有12个月.因此,为了找到一年中的第一天,我们首先将日期转换为月份类型,然后将其向下舍入为12的倍数并转换回日期类型:
q)f:"d"$12 xbar"m"$
q)f .z.d
2017.01.01
Run Code Online (Sandbox Code Playgroud)
或OP的日期:
q)f 2017.05.10 2016.08.19
2017.01.01 2016.01.01
Run Code Online (Sandbox Code Playgroud)