Somar ou subtrair dias de uma data
28 de dezembro de 2024 mais 5 dias é 2 de janeiro de 2025. Digite uma data e um número de dias, positivo para avançar ou negativo para voltar, e receba a data exata, contando os fins de semana. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Data
- 2024-12-28
- Dias
- 5
- Resultado
- 2025-01-02
Esta calculadora desloca uma data real do calendário gregoriano para frente ou para trás usando uma quantidade inteira de dias corridos. Informe uma data ISO estrita e um número positivo, negativo ou zero para receber a data resultante. O cálculo considera meses curtos e longos, dias bissextos, regras de séculos e mudanças de ano sem depender do relógio, do fuso horário ou do horário de verão do dispositivo.
Informe uma data precisa e uma quantidade com sinal
Digite a data inicial no formato estrito YYYY-MM-DD, com quatro algarismos para o ano e dois para o mês e o dia. A largura fixa elimina ambiguidades regionais: 2026-04-09 sempre significa nove de abril. A data precisa existir no calendário gregoriano proléptico.
Trinta e um de abril é inválido, assim como vinte e nove de fevereiro em um ano comum. No segundo campo, informe um número inteiro de dias. Valores positivos avançam, negativos retrocedem e zero mantém a data inicial.
A contagem usa dias corridos; cada meia-noite atravessada vale uma unidade. Sábados, domingos e feriados entram no cálculo. Se você precisar ignorá-los, use uma ferramenta de dias úteis.
São aceitas datas entre os anos 0001 e 9999, mas uma operação cujo resultado saia desse intervalo é recusada. Quantidades fracionárias, infinitas, inseguras ou ausentes também são inválidas.
Como são calculadas as viradas e os anos bissextos
Primeiro, o cálculo valida ano, mês e dia de acordo com a duração dos meses gregorianos. Fevereiro normalmente tem vinte e oito dias, mas tem vinte e nove quando o ano é divisível por quatro; anos de século também precisam ser divisíveis por quatrocentos. Assim, 2000 e 2024 são bissextos, enquanto 1900 e 2100 não são.
Depois da validação, a data civil é convertida em um ordinal inteiro que representa sua posição exata no calendário. A quantidade com sinal é somada a esse ordinal, que então é convertido novamente em ano, mês e dia. O método atravessa naturalmente o fim de fevereiro, meses de trinta dias, dezembro e vários anos nos dois sentidos.
Ele evita manipular relógios e nunca cria um valor Date do JavaScript. Isso é importante porque operações baseadas em relógio podem herdar o fuso horário ou uma transição de horário de verão do ambiente, embora o problema envolva apenas dias civis. Aqui tudo usa aritmética inteira determinística, sem rede e sem leitura da hora atual.
Use o resultado com segurança em fluxos reais
Uma resposta bem-sucedida devolve a data inicial normalizada, o número de dias aplicado com seu sinal e a data ISO resultante. A saída compacta pode ser armazenada em banco de dados, comparada em testes, incluída em uma fatura ou enviada para a próxima etapa de um fluxo. Usos frequentes incluem calcular vencimentos em dias corridos, mover datas de campanhas, gerar lembretes de renovação, definir cortes de retenção e preparar resultados esperados para testes de software.
Lembre que esta capacidade faz aritmética de calendário, não de horário. Ela não inclui hora do dia, fuso horário, deslocamento UTC, regra de dias da semana, calendário de feriados nem convenção comercial de fim de mês. Somar um dia sempre avança para a data civil seguinte, mesmo que seja domingo ou feriado.
Casos de uso
Calcular prazos em dias corridos
Some uma quantidade contratual de dias a uma data de protocolo, aviso, fatura ou ativação, inclusive ao virar o mês ou o ano.
Retroceder datas para obter cortes
Use um número negativo para derivar cortes de retenção, janelas de relatório, início de lembretes ou datas históricas.
Criar dados de teste determinísticos
Gere datas ISO esperadas para anos bissextos e viradas sem depender do relógio, da localidade, do fuso ou do horário de verão.
Perguntas frequentes
Posso subtrair dias além de somá-los?
Sim. Informe um inteiro negativo para retroceder, um positivo para avançar ou zero para manter a mesma data.
O cálculo trata anos bissextos?
Sim. Ele aplica as regras gregorianas, inclusive a exceção dos séculos: anos divisíveis por 100 só são bissextos quando também são divisíveis por 400.
Qual formato de data é aceito?
Use o formato estrito YYYY-MM-DD, como 2026-08-06. Mês e dia precisam ter dois algarismos, e a data deve existir.
Fins de semana e feriados são ignorados?
Não. Esta capacidade conta todos os dias corridos. Use uma calculadora de dias úteis quando precisar excluir dias não úteis.
O que acontece se a data inicial for inválida?
Datas impossíveis como 2023-02-29 ou 2026-04-31 nunca são deslocadas automaticamente para outro mês.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/math/add-subtract-days \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2024-12-28","days":5}'const res = await fetch("https://api.kit.forhosting.com/math/add-subtract-days", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"date": "2024-12-28",
"days": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/add-subtract-days",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"date": "2024-12-28",
"days": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/add-subtract-days", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"date":"2024-12-28","days":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"date":"2024-12-28","days":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/add-subtract-days", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"date": "2024-12-28",
"days": 5
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.add_subtract_days",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Datas inválidas são recusadas claramente, em vez de normalizadas silenciosamente, o que torna o resultado adequado para cronogramas, cobrança, pipelines de dados, testes e automação reproduzível por API.
Informe uma data precisa e uma quantidade com sinal
Essas regras fazem a mesma solicitação responder de modo idêntico no navegador, em scripts, testes ou integrações de API, sem adivinhar formatos regionais nem corrigir automaticamente dados de origem incorretos.
Como são calculadas as viradas e os anos bissextos
Por isso, uma entrada JSON idêntica sempre gera a mesma saída JSON.
Use o resultado com segurança em fluxos reais
Valide os dados de origem: uma data inicial impossível gera invalid_input, permitindo que a integração pare e corrija o registro. O uso no navegador é grátis, enquanto uma execução bem-sucedida pela API custa US$ 0,002 por solicitação.
Perguntas técnicas
Quanto custa a solicitação de API?
A calculadora no navegador é grátis. Uma solicitação de API bem-sucedida usa o preço-base publicado de US$ 0,002.