gpt4 book ai didi

kdb - 在q kdb中获取上一季度的最后一个工作日和第一个工作日(工作日)

转载 作者:行者123 更新时间:2023-12-01 13:14:40 27 4
gpt4 key购买 nike

我想得到上一季度的最后一个工作日(工作日),比如 2019.03.31 是星期天,所以我的要求是得到 2019.03.29 的输出。
我写了下面的代码,它工作得很好但看起来不整洁,在我看来 kdb 有资格提供比这更优雅的解决方案。

{$[1<mod[dt:("d"$3 xbar "m"$.z.d)-x;7];dt;.z.s x+1]}[1]

编辑 - 与上一季度的第一个工作日类似,如何改进以下代码:

{$[1<mod[dt:x+"d"$ -3+3 xbar "m"$.z.d;7];dt;.z.s x+1]}[0]
OR
{d:"d"$ -3+3 xbar "m"$x;$[2>r:d mod 7;d+$[0=r;2;1];d]}.z.d / Based on solution below

最佳答案

您可以使用以下内容:

{d:-1+"d"$3 xbar "m"$x;$[2>r:d mod 7;d-1+r;d]}.z.d

它比你的方法运行得稍微快一些

q)\ts:100000 {$[not((dt:("d"$3 xbar "m"$ .z.d)-x) mod 7) in 0 1; dt; .z.s x+1]}[1]
1031 4752
q)\ts:100000 {d:-1+"d"$3 xbar "m"$x;$[2>r:d mod 7;d-1+r;d]}.z.d
399 4976

关于kdb - 在q kdb中获取上一季度的最后一个工作日和第一个工作日(工作日),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56523556/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com