Somar Dias em Data: por que setDate() é mais seguro que somar milissegundos
Diferente da calculadora de Dias
entre Datas deste site (que soma/subtrai milissegundos para medir
uma diferença), somar dias a uma data única usa uma abordagem
diferente e mais apropriada para esse caso específico:
data.setDate(data.getDate() + dias) — incrementar
diretamente o componente de dia do objeto Date, deixando
o próprio JavaScript resolver automaticamente qualquer "estouro" de
mês ou ano. Somar 5 dias a 30 de janeiro produz corretamente 4 de
fevereiro, sem precisar de nenhuma lógica manual sobre quantos dias
tem cada mês — o objeto Date normaliza isso internamente quando o
valor do dia excede o número de dias daquele mês.
Por que essa normalização automática evita uma classe inteira de bug
Implementações ingênuas que tentam somar dias manipulando ano, mês e
dia como três números independentes (em vez de deixar o objeto Date
cuidar disso) precisam reimplementar manualmente as regras de quantos
dias tem cada mês — incluindo o caso especial de fevereiro em anos
bissextos — um código propenso a erro que setDate()
evita completamente, porque a lógica de calendário (quantos dias tem
cada mês, quando é ano bissexto) já está implementada corretamente
dentro da própria especificação do JavaScript, testada e usada por
praticamente todo software do planeta.
Uso prático: prazos legais, vencimentos e SLA
Calcular "data + N dias" é uma operação comum em contextos com implicação real — prazo processual (contar dias corridos ou úteis a partir de uma notificação), data de vencimento de um boleto ou assinatura (30, 60, 90 dias a partir da emissão), ou SLA de atendimento (prazo de resposta a partir da abertura de um chamado). Vale notar que esta calculadora soma dias corridos (contando todos os dias, incluindo fins de semana e feriados) — para contextos que exigem especificamente dias úteis (excluindo fins de semana e feriados), seria necessária uma lógica adicional, fora do escopo desta ferramenta simples.