Essa função retorna um valor correspondente a um carimbo de data/hora do último milissegundo do último dia da semana lunar que contém date. As semanas lunares no Qlik Sense são definidas contando 1º de janeiro como o primeiro dia da semana e, além da última semana do ano, conterão exatamente sete dias.
Sintaxe:
LunarweekEnd(date[, period_no[, first_week_day]])
Tipo de dados de retorno: dual
A função lunarweekend() determina em qual semana lunar a date cai. Em seguida, ela retorna um carimbo de data/hora, em formato de data, para o último milissegundo daquela semana.
Argumentos
Argumento
Descrição
date
A data ou o carimbo de data/hora a ser avaliado.
period_no
period_no é um inteiro ou uma expressão que resolve um inteiro em que o valor 0 indica a semana lunar que contém date. Valores negativos em period_no indicam semanas lunares precedentes e valores positivos indicam semanas lunares sucessivas.
first_week_day
Um deslocamento que pode ser maior ou menor que zero. Isso muda o início do ano por um número determinado de dias e/ou frações de um dia.
Quando usar
A função lunarweekend() é comumente usada como parte de uma expressão quando o usuário deseja que o cálculo use a fração da semana que ainda não ocorreu. Diferente da função weekend(), a última semana lunar de cada ano civil terminará em 31 de dezembro. Por exemplo, a função lunarweekend() pode ser usada para calcular juros ainda não acumulados durante a semana.
Exemplos de funções
Exemplo
Resultado
lunarweekend('01/12/2013')
Retorna 01/14/2013 23:59:59.
lunarweekend('01/12/2013', -1)
Retorna 01/07/2013 23:59:59.
lunarweekend('01/12/2013', 0, 1)
Retorna 01/15/2013 23:59:59.
Configurações regionais
A menos que especificado de outra forma, os exemplos neste tópico usam o seguinte formato de data: MM/DD/AAAA. O formato de data é especificado na instrução SET DateFormat no seu script de carregamento de dados. A formatação de data padrão pode ser diferente no seu sistema devido às suas configurações regionais e outros fatores. Você pode alterar os formatos nos exemplos abaixo para atender às suas necessidades. Ou pode alterar os formatos no seu script de carregamento para corresponder a esses exemplos.
As configurações regionais padrão nos aplicativos são baseadas nas configurações regionais do sistema do computador ou servidor em que o Qlik Sense está instalado. Se o servidor Qlik Sense que você está acessando estiver definido como Suécia, o Editor de carregamento de dados usará as configurações regionais suecas para datas, horas e moedas. Essas configurações de formato regional não estão relacionadas ao idioma exibido na interface do usuário do Qlik Sense. O Qlik Sense será exibido no mesmo idioma do navegador que você está usando.
Exemplo 1: Sem argumentos adicionais
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Um conjunto de dados contendo um conjunto de transações para 2022, que é carregado em uma tabela denominada Transactions.
O campo de data fornecido no formato da variável de sistema DateFormat (MM/DD/AAAA).
A criação de um campo, end_of_week, que retorna um carimbo de data/hora para o final da semana lunar em que as transações ocorreram.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
end_of_week
end_of_week_timestamp
Tabela de resultados
date
end_of_week
end_of_week_timestamp
1/7/2022
01/07/2022
1/7/2022 11:59:59 PM
1/19/2022
01/21/2022
1/21/2022 11:59:59 PM
2/5/2022
02/11/2022
2/11/2022 11:59:59 PM
2/28/2022
03/04/2022
3/4/2022 11:59:59 PM
3/16/2022
03/18/2022
3/18/2022 11:59:59 PM
4/1/2022
04/01/2022
4/1/2022 11:59:59 PM
5/7/2022
05/13/2022
5/13/2022 11:59:59 PM
5/16/2022
05/20/2022
5/20/2022 11:59:59 PM
6/15/2022
06/17/2022
6/17/2022 11:59:59 PM
6/26/2022
07/01/2022
7/1/2022 11:59:59 PM
7/9/2022
07/15/2022
7/15/2022 11:59:59 PM
7/22/2022
07/22/2022
7/22/2022 11:59:59 PM
7/23/2022
07/29/2022
7/29/2022 11:59:59 PM
7/27/2022
07/29/2022
7/29/2022 11:59:59 PM
8/2/2022
08/05/2022
8/5/2022 11:59:59 PM
8/8/2022
08/12/2022
8/12/2022 11:59:59 PM
8/19/2022
08/19/2022
8/19/2022 11:59:59 PM
9/26/2022
09/30/2022
9/30/2022 11:59:59 PM
10/14/2022
10/14/2022
10/14/2022 11:59:59 PM
10/29/2022
11/04/2022
11/4/2022 11:59:59 PM
O campo end_of_week é criado na instrução de carregamento anterior usando a função lunarweekend() e transmitindo o campo date como o argumento da função.
A função lunarweekend() identifica em qual semana lunar o valor da data cai, retornando um carimbo de data/hora para o último milissegundo dessa semana.
A transação 8189 ocorreu em 19 de janeiro. A função lunarweekend() identifica que a semana lunar começa em 15 de janeiro. Portanto, o valor end_of_week dessa transação retorna o último milissegundo da semana lunar, que é 21 de janeiro às 11:59:59 PM.
Exemplo 2: period_no
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
O mesmo conjunto de dados e cenário do primeiro exemplo.
A criação de um campo, previous_lunar_week_end, que retorna o carimbo de data/hora do final da semana lunar antes da transação.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
previous_lunar_week_end
previous_lunar_week_end_timestamp
Tabela de resultados
date
previous_lunar_week_end
previous_lunar_week_end_timestamp
1/7/2022
12/31/2021
12/31/2021 11:59:59 PM
1/19/2022
01/14/2022
1/14/2022 11:59:59 PM
2/5/2022
02/04/2022
2/4/2022 11:59:59 PM
2/28/2022
02/25/2022
2/25/2022 11:59:59 PM
3/16/2022
03/11/2022
3/18/2022 11:59:59 PM
4/1/2022
03/25/2022
3/25/2022 11:59:59 PM
5/7/2022
05/06/2022
5/6/2022 11:59:59 PM
5/16/2022
05/13/2022
5/13/2022 11:59:59 PM
6/15/2022
06/10/2022
6/10/2022 11:59:59 PM
6/26/2022
06/24/2022
6/24/2022 11:59:59 PM
7/9/2022
07/08/2022
7/8/2022 11:59:59 PM
7/22/2022
07/15/2022
7/15/2022 11:59:59 PM
7/23/2022
07/22/2022
7/22/2022 11:59:59 PM
7/27/2022
07/22/2022
7/22/2022 11:59:59 PM
8/2/2022
07/29/2022
7/29/2022 11:59:59 PM
8/8/2022
08/05/2022
8/5/2022 11:59:59 PM
8/19/2022
08/12/2022
8/12/2022 11:59:59 PM
9/26/2022
09/23/2022
9/23/2022 11:59:59 PM
10/14/2022
10/07/2022
10/7/2022 11:59:59 PM
10/29/2022
10/28/2022
10/28/2022 11:59:59 PM
Nesse caso, como um period_no de -1 foi usado como argumento de compensação na função lunarweekend(), a função primeiro identifica a semana lunar em que as transações ocorreram. Em seguida, ela muda para uma semana antes e identifica o último milissegundo dessa semana lunar.
A transação 8189 ocorreu em 19 de janeiro. A função lunarweekend() identifica que a semana lunar começa em 15 de janeiro. Portanto, a semana lunar anterior começou em 8 de janeiro e terminou em 14 de janeiro às 11:59:59 PM. Esse é o valor retornado para o campo previous_lunar_week_end.
Exemplo 3: first_week_day
Visão geral
Abra o editor de carregamento de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém o mesmo conjunto de dados e cenário do primeiro exemplo. Neste exemplo, definimos que as semanas lunares devem começar em 5 de janeiro.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
end_of_week
end_of_week_timestamp
Tabela de resultados
date
end_of_week
end_of_week_timestamp
1/7/2022
01/11/2022
1/11/2022 11:59:59 PM
1/19/2022
01/25/2022
1/25/2022 11:59:59 PM
2/5/2022
02/08/2022
2/8/2022 11:59:59 PM
2/28/2022
03/01/2022
3/1/2022 11:59:59 PM
3/16/2022
03/22/2022
3/22/2022 11:59:59 PM
4/1/2022
04/05/2022
4/5/2022 11:59:59 PM
5/7/2022
05/10/2022
5/10/2022 11:59:59 PM
5/16/2022
05/17/2022
5/17/2022 11:59:59 PM
6/15/2022
06/21/2022
6/21/2022 11:59:59 PM
6/26/2022
06/28/2022
6/28/2022 11:59:59 PM
7/9/2022
07/12/2022
7/12/2022 11:59:59 PM
7/22/2022
07/26/2022
7/26/2022 11:59:59 PM
7/23/2022
07/26/2022
7/26/2022 11:59:59 PM
7/27/2022
08/02/2022
8/2/2022 11:59:59 PM
8/2/2022
08/02/2022
8/2/2022 11:59:59 PM
8/8/2022
08/09/2022
8/9/2022 11:59:59 PM
8/19/2022
08/23/2022
8/23/2022 11:59:59 PM
9/26/2022
09/27/2022
9/27/2022 11:59:59 PM
10/14/2022
10/18/2022
10/18/2022 11:59:59 PM
10/29/2022
11/01/2022
11/1/2022 11:59:59 PM
Nesse caso, como o argumento first_week_date de 4 é usado na função lunarweekend(), ele desloca o início do ano de 1º de janeiro a 5 de janeiro.
A transação 8189 ocorreu em 19 de janeiro. Como as semanas lunares começam em 5 de janeiro, a função lunarweekend() identifica que a semana lunar contendo 19 de janeiro também começa em 19 de janeiro. Portanto, o final dessa semana lunar ocorre em 25 de janeiro às 11:59:59 PM; esse é o valor retornado para o campo end_of_week.
Exemplo 4: Exemplo de objeto de gráfico
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém o mesmo conjunto de dados e cenário do primeiro exemplo.
No entanto, neste exemplo, o conjunto de dados inalterado é carregado no aplicativo. O cálculo que retorna um carimbo de data/hora para o final da semana lunar em que as transações ocorreram é criado como uma medida em um objeto de gráfico do aplicativo.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão: date.
Adicione as seguintes medidas:
=lunarweekend(date)
=timestamp(lunarweekend(date))
Tabela de resultados
date
=lunarweekend(date)
=timestamp(lunarweekend(date))
1/7/2022
01/07/2022
1/7/2022 11:59:59 PM
1/19/2022
01/21/2022
1/21/2022 11:59:59 PM
2/5/2022
02/11/2022
2/11/2022 11:59:59 PM
2/28/2022
03/04/2022
3/4/2022 11:59:59 PM
3/16/2022
03/18/2022
3/18/2022 11:59:59 PM
4/1/2022
04/01/2022
4/1/2022 11:59:59 PM
5/7/2022
05/13/2022
5/13/2022 11:59:59 PM
5/16/2022
05/20/2022
5/20/2022 11:59:59 PM
6/15/2022
06/17/2022
6/17/2022 11:59:59 PM
6/26/2022
07/01/2022
7/1/2022 11:59:59 PM
7/9/2022
07/15/2022
7/15/2022 11:59:59 PM
7/22/2022
07/22/2022
7/22/2022 11:59:59 PM
7/23/2022
07/29/2022
7/29/2022 11:59:59 PM
7/27/2022
07/29/2022
7/29/2022 11:59:59 PM
8/2/2022
08/05/2022
8/5/2022 11:59:59 PM
8/8/2022
08/12/2022
8/12/2022 11:59:59 PM
8/19/2022
08/19/2022
8/19/2022 11:59:59 PM
9/26/2022
09/30/2022
9/30/2022 11:59:59 PM
10/14/2022
10/14/2022
10/14/2022 11:59:59 PM
10/29/2022
11/04/2022
11/4/2022 11:59:59 PM
A medida end_of_week é criada no objeto de gráfico usando a função lunarweekend() e transmitindo o campo date como o argumento da função.
A função lunarweekend() identifica em qual semana lunar o valor da data cai, retornando um carimbo de data/hora para o último milissegundo dessa semana.
A transação 8189 ocorreu em 19 de janeiro. A função lunarweekend() identifica que a semana lunar começa em 15 de janeiro. Portanto, o valor end_of_week dessa transação retorna o último milissegundo da semana lunar, que é 21 de janeiro às 11:59:59 PM.
Exemplo 5: Cenário
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Um conjunto de dados que é carregado em uma tabela denominada Employee_Expenses.
Os IDs dos funcionários, o nome do funcionário e a média diária de reivindicações de despesas de cada funcionário.
O usuário final deseja um objeto de gráfico que mostre, por ID de funcionário e nome de funcionário, as reivindicações de despesas estimadas ainda a serem acumuladas para o restante da semana lunar.
A função lunarkweekend(), usando a data de hoje como seu único argumento, retorna a data de término da semana lunar atual. Em seguida, subtraindo a data de hoje da data de término da semana lunar, a expressão retorna o número de dias que restam nessa semana.
Esse valor é então multiplicado pela média de solicitações de despesas diárias por cada funcionário para calcular o valor estimado das solicitações que cada funcionário deve fazer na semana lunar restante.
Esta página ajudou?
Se você encontrar algum problema com esta página ou seu conteúdo - um erro de digitação, uma etapa ausente ou um erro técnico - informe-nos como podemos melhorar!