Como calculamos datas, dias úteis e horas

Esta página explica o método das calculadoras de datas. Todo cálculo roda no seu navegador. Nada é enviado ou guardado.
Calendário e datas
Usamos o calendário gregoriano, com anos bissextos (divisíveis por 4, exceto os de século que não são divisíveis por 400). Aceitamos datas de 1583 a 9999. Uma data que não existe, como 31 de fevereiro, é recusada.
Dias entre duas datas
Cada data vira um número de dia, contado desde 1º de janeiro de 1970, pelo algoritmo público “days from civil”, de Howard Hinnant (chrono-Compatible Low-Level Date Algorithms). O total é a subtração dos dois números. Como não há horas na conta, o horário de verão não interfere.
Regra do dia inicial
Por padrão o dia inicial não conta. Com a opção ligada, o total ganha um dia. A regra usada sempre aparece ao lado do resultado.
Anos, meses e dias
Partimos da data mais antiga e somamos meses inteiros enquanto não passarmos da data mais recente. Se o dia não existe no mês de chegada, usamos o último dia do mês. Os dias que sobram formam a parte “dias”.
Dias úteis e feriados
Um dia útil é um dia de segunda a sexta-feira que não é feriado. Os feriados nacionais vêm de leis federais (Leis 662/1949, 10.607/2002, 6.802/1980 e 14.759/2023) e do calendário oficial do governo federal, que lista a Sexta-feira Santa como feriado nacional. A Sexta-feira Santa, o Carnaval e o Corpus Christi são calculados a partir da Páscoa, pelo algoritmo de Meeus, Jones e Butcher. Carnaval e Corpus Christi são pontos facultativos e ficam desligados até você ligá-los. Feriados estaduais e municipais não estão na lista; você pode somar os seus. A página da calculadora mostra a versão e a data de conferência dos dados de feriados.
Horas
A calculadora de horas trabalha com minutos inteiros, sem horário de relógio e sem volta em 24 horas. Só as horas decimais são arredondadas, em duas casas, para cima a partir de meio centésimo.
Verificação
Cada calculadora tem especificação escrita e é testada com casos conferidos, testes de propriedades e uma comparação com um segundo cálculo independente em 10.000 entradas aleatórias. Os erros que encontramos são corrigidos e registrados.