0
Is there any way to add useful days to a date that doesn’t use repeat loops (like while and for)?
I currently use this code
var novaData = new Date(dataBase.valueOf());
var diasUteisRemanescente;
var isFimDeSemana;
var direcao;
// Remove decimais
if (diasSoma !== parseInt(diasSoma, 10)) { throw new TypeError('AdicionaDiaUtil utiliza apenas dias uteis.'); }
// Se zero dias, não realiza mudança
if (diasSoma === 0) { return dataBase; }
//Decide soma ou subtração
direcao = diasSoma > 0 ? 1 : -1;
//decide numero de iterações
diasUteisRemanescente = Math.abs(diasSoma);
//Intera até chegar zerar os dias
while (diasUteisRemanescente) {
// adiciona/subtrai um dia
novaData.setDate(novaData.getDate() + direcao);
//Verifica se o dia é util
if (isSabadoUtil) {
isFimDeSemana = novaData.getDay() in { 0: 'Sunday' };
}
else {
isFimDeSemana = novaData.getDay() in { 0: 'Sunday', 6: 'Saturday' };
}
//Se for util remove um dia
if (!isFimDeSemana) { diasUteisRemanescente--; }
}
return novaData;
With or without "gambiarra"?
– David
There may or may not be
– fba_pereira