Проверьте, является ли данная дата последним днем ​​месяца - PullRequest
0 голосов
/ 20 февраля 2019

Допустим, у меня есть заданная дата d:

d:2019.02.20

Как написать функцию f такую, что f равно True, если d - последний деньмесяц, False иначе?

Пример:

f[d]             / Should return 0b
f[2019.02.28]    / Should return 1b
f[2019.01.31]    / Should return 1b

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Вы можете извлечь часть месяца с помощью `mm $ dt или" m "$ dt.См .: https://code.kx.com/q4m3/7_Transforming_Data/#723-casts-that-narrow

Затем просто сравните с введенной вами датой + 1 (которая добавит один день):

q)f:{(`mm$x) <> `mm$x+1}

q)f[2019.02.28 2020.02.28 2019.03.04 2019.03.31]
1001b
0 голосов
/ 20 февраля 2019

Приведите его к месяцу, добавьте 1, чтобы получить в следующем месяце, вернитесь к дате (которая даст первый день месяца), вычтите одно и сравните с вводом:

q){x=-1+"d"$1+"m"$x}[2019.02.28 2020.02.28 2019.03.04 2019.03.31]                                                                                    
1001b
...