A função makeweekdate() está disponível como função de script e gráfico. Ela calculará a data com base nos parâmetros informados para a função.
Argumentos
Argumento
Descrição
weekyear
O ano definido pela função WeekYear() para a data específica, ou seja, o ano ao qual o número da semana pertence.
Nota informativaEm alguns casos, o ano da semana pode ser diferente do ano civil, por exemplo, se a semana 1 começar já em dezembro do ano anterior.
week
O número da semana, conforme definido pela função Week() para a data específica.
Se nenhum número da semana for declarado, assume-se 1.
weekday
O dia da semana definido pela função WeekDay() para a data em questão. 0 é o primeiro dia da semana e 6 é o último dia da semana.
Se nenhum dia da semana for informado, assume-se 0.
Nota informativaEmbora 0 sempre signifique o primeiro dia da semana e 6 seja sempre o último, os dias da semana a que correspondem são determinados pelo parâmetro first_week_day. Se omitido, o valor da variávelFirstWeekDay será usado.
Se semanas interrompidas forem usadas, juntamente com uma combinação impossível de parâmetros, isso poderá levar a um resultado que não pertence ao ano escolhido.
Exemplo:
MakeWeekDate(2021,1,0,6,1)
Retorna '27 de dezembro de 2020', pois esse dia é o primeiro dia (o domingo) da semana especificada. 1º de janeiro de 2021 foi uma sexta-feira.
first_week_day
Especifica o dia no qual inicia a semana. Se omitido, o valor da variável FirstWeekDay é usado.
Os valores possíveis first_week_day são 0 para segunda-feira, 1 para terça, 2 para quarta-feira, 3 para quinta-feira, 4 para sexta-feira, 5 para sábado e 6 para domingo.
Para obter mais informações sobre a variável de sistema, consulte FirstWeekDay.
broken_weeks
Se você não especificar broken_weeks, o valor da variável BrokenWeeks será usado para definir se as semanas estão interrompidas ou não.
Para obter mais informações sobre a variável de sistema, consulte BrokenWeeks
reference_day
Se você não especificar reference_day, o valor da variável ReferenceDay será usado para definir qual dia de janeiro definir como dia de referência para definir a semana 1.
Para obter mais informações sobre a variável de sistema, consulte ReferenceDay
Quando usar
A função makeweekdate() normalmente seria usada no script para geração de dados, para gerar uma lista de datas ou criar datas em que o ano, a semana e o dia da semana são fornecidos nos dados de entrada.
Os exemplos a seguir pressupõem que:
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Exemplos de funções
Exemplo
Resultado
makeweekdate(2014,6,6)
retorna 02/09/2014
makeweekdate(2014,6,1)
retorna 02/04/2014
makeweekdate(2014,6)
retorna 02/03/2014 (dia da semana 0 é exibido)
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. Para obter mais informações, consulte Modificando as configurações regionais do aplicativo.
As configurações regionais padrão nos aplicativos são baseadas no perfil do usuário. Essas configurações de formato regional não estão relacionadas ao idioma exibido na interface do usuário do Qlik Cloud. O Qlik Cloud será exibido no mesmo idioma do navegador que você está usando.
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 o total de vendas semanais para 2022 em uma tabela denominada Sales.
As datas das transações são fornecidas em três campos: year, week e sales.
Um carregamento anterior, usada para criar uma medidaend_of_week, usando a função makeweekdate() para retornar a data da sexta-feira dessa semana no formato MM/DD/AAAA.
Para provar que a data retornada é uma sexta-feira, a expressão end_of_week também é incluída na função weekday() para mostrar o dia da semana.
Script de carregamento
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Transactions:
Load
*,
makeweekdate(transaction_year, transaction_week,4) as end_of_week,
weekday(makeweekdate(transaction_year, transaction_week,4)) as week_day
;
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
transaction_year
transaction_week
end_of_week
week_day
Tabela de resultados
transaction_year
transaction_week
end_of_week
week_day
2022
01
01/07/2022
Fri
2022
02
01/14/2022
Fri
2022
03
01/21/2022
Fri
2022
04
01/28/2022
Fri
2022
05
02/04/2022
Fri
2022
06
02/11/2022
Fri
2022
07
02/18/2022
Fri
O campo end_of_week é criado na instrução de carregamento anterior usando a função makeweekdate(). Os campos transaction_year, transaction_week são informados pela função como argumentos de ano e semana. Um valor de 4 é usado para o argumento “day”.
A função então combina e converte esses valores em um campo de data, retornando os resultados no formato da variável de sistema DateFormat.
A função makeweekdate() e seus argumentos também são agrupados em uma função weekday() para retornar o campo week_day; e, como pode ser visto na tabela acima, o campo week_day mostra que essas datas ocorrem em uma sexta-feira.
Exemplo 2: dia excluído
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 os totais de vendas semanais para 2022 em uma tabela denominada Sales.
As datas das transações são fornecidas em três campos: year, week e sales.
Um carregamento anterior, usado para criar uma medida, first_day_of_week, usando a função makeweekdate(). Isso retornará a data de segunda-feira dessa semana no formato MM/DD/AAAA.
Para provar que a data retornada é uma segunda-feira, a expressão first_day_of_week também é incluída na função weekday() para mostrar o dia da semana.
Script de carregamento
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Transactions:
Load
*,
makeweekdate(transaction_year, transaction_week) as first_day_of_week,
weekday(makeweekdate(transaction_year, transaction_week)) as week_day
;
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
transaction_year
transaction_week
first_day_of_week
week_day
Tabela de resultados
transaction_year
transaction_week
first_day_of_week
week_day
2022
01
01/03/2022
Mon
2022
02
01/10/2022
Mon
2022
03
01/17/2022
Mon
2022
04
01/24/2022
Mon
2022
05
01/31/2022
Mon
2022
06
02/07/2022
Mon
2022
07
02/14/2022
Mon
O campo first_day_of_week é criado na instrução de carregamento anterior usando a função makeweekdate(). Os parâmetros transaction_year e transaction_week são informados como argumentos de função, e o parâmetro “day” é deixado em branco.
A função então combina e converte esses valores em um campo de data, retornando os resultados no formato da variável de sistema DateFormat.
A função makeweekdate() e seus argumentos também são agrupados em uma função weekday() para retornar o campo week_day. Como pode ser visto na tabela acima, o campo week_day retorna segunda-feira em todos os casos desde que esse parâmetro foi deixado em branco na função makeweekdate(), cujo padrão é 0 (primeiro dia da semana) e o primeiro dia da semana é definido como segunda-feira pela variável do sistema FirstWeekDay.
Exemplo 3: 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:
Um conjunto de dados contendo os totais de vendas semanais para 2022 em uma tabela denominada Sales.
As datas das transações são fornecidas em três campos: year, week e sales.
Neste exemplo, um objeto de gráfico será usado para criar uma medida equivalente ao cálculo de end_of_week do primeiro exemplo. Essa medida usará a função makeweekdate() para retornar a data da sexta-feira daquela semana no formato MM/DD/AAAA.
Para provar que a data retornada é uma sexta-feira, uma segunda medida é criada para retornar o dia da semana.
Script de carregamento
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Master_Calendar:
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
Resultados
Faça o seguinte:
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
transaction_year
transaction_week
Para realizar o cálculo equivalente ao do campo end_of_week do primeiro exemplo, crie a seguinte medida:
Um campo equivalente a end_of_week é criado no objeto de gráfico como uma medida usando a função makeweekdate(). Os campos transaction_year e transaction_week são transmitidos como argumentos “year” e “week”. Um valor de 4 é usado para o argumento “day”.
A função então combina e converte esses valores em um campo de data, retornando os resultados no formato da variável de sistema DateFormat.
A função makeweekdate() e seus argumentos também são agrupados em uma função weekday() para retornar um cálculo equivalente ao do campo week_day do primeiro exemplo. Como pode ser visto na tabela acima, a última coluna à direita mostra que essas datas ocorrem em uma sexta-feira.
Exemplo 4: Cenário
Visão geral
Neste exemplo, crie uma lista de datas contendo todas as sextas-feiras do ano de 2022.
Abra o editor de carregamento de dados e adicione o script de carregamento abaixo em uma nova guia.
Script de carregamento
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Calendar:
load
*,
weekday(date) as weekday
where year(date)=2022;
load
makeweekdate(2022,recno()-2,4) as date
AutoGenerate 60;
Resultados
Tabela de resultados
date
weekday
01/07/2022
Fri
01/14/2022
Fri
01/21/2022
Fri
01/28/2022
Fri
02/04/2022
Fri
02/11/2022
Fri
02/18/2022
Fri
02/25/2022
Fri
03/04/2022
Fri
03/11/2022
Fri
03/18/2022
Fri
03/25/2022
Fri
04/01/2022
Fri
04/08/2022
Fri
04/15/2022
Fri
04/22/2022
Fri
04/29/2022
Fri
05/06/2022
Fri
05/13/2022
Fri
05/20/2022
Fri
05/27/2022
Fri
06/03/2022
Fri
06/10/2022
Fri
06/17/2022
Fri
Mais de 27 linhas
A função makeweekdate() localiza todas as sextas-feiras em 2022. Usar um parâmetro “week” de -2 garante que nenhuma data seja perdida. Finalmente, um carregamento anterior cria um campo weekday adicional para maior clareza, para mostrar que cada valor de date é uma sexta-feira.
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!