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 configurações regionais para aplicativos e scripts.
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!