Widget:DzScript: mudanças entre as edições
Ir para navegação
Ir para pesquisar
Sem resumo de edição |
Sem resumo de edição Etiqueta: Revertido |
||
Linha 2: | Linha 2: | ||
document.addEventListener('DOMContentLoaded', function () { | document.addEventListener('DOMContentLoaded', function () { | ||
// Função para calcular o número da semana atual | // Função para calcular o número da semana atual | ||
function getWeekNumber(date) { | |||
let d = new Date(Date.UTC( | let d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate())); | ||
let dayNum = d.getUTCDay() || 7; // Garante que domingo (0) seja o último dia da semana | let dayNum = d.getUTCDay() || 7; // Garante que domingo (0) seja o último dia da semana | ||
let yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1)); | let yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1)); | ||
return Math.ceil((((d - yearStart) / 86400000) ) / 7); // Calcula o número da semana | return Math.ceil((((d - yearStart) / 86400000) + 1) / 7); // Calcula o número da semana corretamente | ||
} | } | ||
const url = window.location.origin; | const url = window.location.origin; | ||
const dzCard = document.getElementById('dz-card'); | const dzCard = document.getElementById('dz-card'); | ||
// Verificar se é sexta-feira | // Utilizar API de tempo para garantir precisão na data/hora | ||
fetch('https://worldtimeapi.org/api/timezone/America/Sao_Paulo') | |||
.then(response => response.json()) | |||
.then(data => { | |||
const currentDate = new Date(data.datetime); | |||
let actualWeekNumber = getWeekNumber(currentDate); | |||
// Verificar se é sexta-feira após as 7h | |||
const isFridayAfter7AM = currentDate.getDay() === 5 && currentDate.getHours() >= 7; | |||
// Incrementa o número da semana para sexta-feira após as 7h | |||
if (isFridayAfter7AM) { | |||
actualWeekNumber++; | |||
} | |||
// Define as semanas começando pela "Primeira semana" | |||
const dzWeeks = [ | |||
{ name: 'Décima segunda semana', image: '/images/1/11/Card_DZ_D%C3%A9cima-Segunda-Semana.png' }, | |||
{ name: 'Primeira semana', image: '/images/b/b2/Card_DZ_Primeira-Semana.png' }, | |||
{ name: 'Segunda semana', image: '/images/9/97/Card_DZ_Segunda-Semana.png' }, | |||
{ name: 'Terceira semana', image: '/images/f/fd/Card_DZ_Terceira-Semana.png' }, | |||
{ name: 'Quarta semana', image: '/images/1/17/Card_DZ_Quarta-Semana.png' }, | |||
{ name: 'Quinta semana', image: '/images/4/40/Card_DZ_Quinta-Semana.png' }, | |||
{ name: 'Sexta semana', image: '/images/2/23/Card_DZ_Sexta-Semana.png' }, | |||
{ name: 'Sétima semana', image: '/images/f/f2/Card_DZ_S%C3%A9tima-Semana.png' }, | |||
{ name: 'Oitava semana', image: '/images/9/97/Card_DZ_Oitava-Semana.png' }, | |||
{ name: 'Nona semana', image: '/images/b/b3/Card_DZ_Nona-Semana.png' }, | |||
{ name: 'Décima semana', image: '/images/3/30/Card_DZ_D%C3%A9cima-Semana.png' }, | |||
{ name: 'Décima primeira semana', image: '/images/4/49/Card_DZ_D%C3%A9cima-Primeira-Semana.png' }, | |||
]; | |||
// Ajuste para garantir que o índice da semana esteja correto | |||
let weekIndex = (actualWeekNumber - 1) % dzWeeks.length; | |||
// Atualiza a imagem correspondente à semana imediatamente | |||
if (dzCard) { | |||
dzCard.src = url + dzWeeks[weekIndex].image; | |||
dzCard.alt = dzWeeks[weekIndex].name; | |||
} | |||
}) | |||
.catch(error => { | |||
console.error('Erro ao buscar a data e hora:', error); | |||
}); | |||
}); | }); | ||
</script> | </script> |
Edição das 14h48min de 19 de outubro de 2024
<script> document.addEventListener('DOMContentLoaded', function () {
// Função para calcular o número da semana atual function getWeekNumber(date) { let d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate())); let dayNum = d.getUTCDay() || 7; // Garante que domingo (0) seja o último dia da semana let yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1)); return Math.ceil((((d - yearStart) / 86400000) + 1) / 7); // Calcula o número da semana corretamente }
const url = window.location.origin; const dzCard = document.getElementById('dz-card');
// Utilizar API de tempo para garantir precisão na data/hora fetch('https://worldtimeapi.org/api/timezone/America/Sao_Paulo') .then(response => response.json()) .then(data => { const currentDate = new Date(data.datetime); let actualWeekNumber = getWeekNumber(currentDate);
// Verificar se é sexta-feira após as 7h const isFridayAfter7AM = currentDate.getDay() === 5 && currentDate.getHours() >= 7;
// Incrementa o número da semana para sexta-feira após as 7h if (isFridayAfter7AM) { actualWeekNumber++; }
// Define as semanas começando pela "Primeira semana" const dzWeeks = [ { name: 'Décima segunda semana', image: '/images/1/11/Card_DZ_D%C3%A9cima-Segunda-Semana.png' }, { name: 'Primeira semana', image: '/images/b/b2/Card_DZ_Primeira-Semana.png' }, { name: 'Segunda semana', image: '/images/9/97/Card_DZ_Segunda-Semana.png' }, { name: 'Terceira semana', image: '/images/f/fd/Card_DZ_Terceira-Semana.png' }, { name: 'Quarta semana', image: '/images/1/17/Card_DZ_Quarta-Semana.png' }, { name: 'Quinta semana', image: '/images/4/40/Card_DZ_Quinta-Semana.png' }, { name: 'Sexta semana', image: '/images/2/23/Card_DZ_Sexta-Semana.png' }, { name: 'Sétima semana', image: '/images/f/f2/Card_DZ_S%C3%A9tima-Semana.png' }, { name: 'Oitava semana', image: '/images/9/97/Card_DZ_Oitava-Semana.png' }, { name: 'Nona semana', image: '/images/b/b3/Card_DZ_Nona-Semana.png' }, { name: 'Décima semana', image: '/images/3/30/Card_DZ_D%C3%A9cima-Semana.png' }, { name: 'Décima primeira semana', image: '/images/4/49/Card_DZ_D%C3%A9cima-Primeira-Semana.png' }, ];
// Ajuste para garantir que o índice da semana esteja correto let weekIndex = (actualWeekNumber - 1) % dzWeeks.length;
// Atualiza a imagem correspondente à semana imediatamente if (dzCard) { dzCard.src = url + dzWeeks[weekIndex].image; dzCard.alt = dzWeeks[weekIndex].name; } }) .catch(error => { console.error('Erro ao buscar a data e hora:', error); });
}); </script>