titulo
Primeira segunda-feira do mês
by Gustavo Adolfo A. S.
HTML
<p>
Data Inicial: <spam id="dataInicial"></spam><br/>
Data Final: <spam id="dataFinal"></spam>
</p>
<hr/>
<div id="lista">
</div>
<hr />
<div id="lista2">
</div>
JavaScript
let dataInicial = new Date(2019, 4, 6);
const dataFinal = new Date(2019, 9, 10);
document.getElementById('dataInicial').innerText = dataInicial.toString();
document.getElementById('dataFinal').innerText = dataInicial.toString();
let dias = 7;
let intervalo = dias * 24 * 60 * 60 * 1000;
const diaDaSemanaDesejado = 1; // segunda-feira
let dataReferencia = dataInicial;
let datas = [];
while(dataReferencia < dataFinal) {
let diaAtual = dataReferencia.getDay();
let diferencaEmDias =0, novoIntervalo = 0;
if (diaAtual == diaDaSemanaDesejado) {
let textnode = document.createTextNode(`Nova data: ${dataReferencia}`);
document.getElementById('lista').appendChild(textnode);
} else if (diaAtual < diaDaSemanaDesejado) {
alert('2');
diferencaEmDias = diaAtual - diaDaSemanaDesejado;
novoIntervalo = diferencaEmDias * 24 * 60 * 60 * 1000;
dataReferencia = new Date(dataReferencia.getTime() + novoIntervalo);
let textnode = document.createTextNode(`Nova data: ${dataReferencia}`);
document.getElementById('lista').appendChild(textnode);
} else {
alert('3');
diferencaEmDias = diaDaSemanaDesejado - diaAtual;
novoIntervalo = diferencaEmDias * 24 * 60 * 60 * 1000;
dataReferencia = new Date(dataReferencia.getTime() - novoIntervalo);
let textnode = document.createTextNode(`Nova data: ${dataReferencia}`);
document.getElementById('lista').appendChild(textnode);
}
if(datas.length > 0) {
// alert(dataReferencia.getMonth());
let filtroDatas = datas.filter(d => {
if (d.getMonth() == dataReferencia.getMonth()) {
return d;
}
});
if(filtroDatas.length < 1) {
datas.push(dataReferencia);
}
} else {
datas.push(dataReferencia);
}
document.getElementById('lista').appendChild(document.createElement('BR'));
dataReferencia = new Date(dataReferencia.getTime() + intervalo);
}
if (datas) {
datas.forEach(d => {
let p =...