Subtrair duas durações HMS
Subtraia uma duração em horas, minutos e segundos de outra sem converter os valores manualmente.
Executar grátis
Informe duas durações não negativas no formato HH:MM:SS; a calculadora subtrai a segunda da primeira, faz empréstimos entre segundos e minutos quando necessário e retorna um resultado exato com sinal. As horas não se limitam ao relógio de 24 horas, portanto a ferramenta atende projetos, mídias, treinos, ciclos de máquinas e outras durações longas. O cálculo depende somente dos dois valores que você fornece.
Informe durações decorridas, não horários do dia
Use como primeiro valor a duração da qual você deseja subtrair e como segundo a duração que será descontada. Cada entrada segue HH:MM:SS, com dois dígitos para minutos e segundos. As horas podem ter de um a seis dígitos, então 125:30:00 é válido mesmo que 125 não seja uma hora do relógio. Minutos e segundos devem ficar entre 00 e 59 porque a calculadora espera dados normalizados. Use 00 para uma unidade vazia, como 7:00:09 para sete horas e nove segundos. As entradas são não negativas; o sinal pertence à diferença calculada, e não às durações de origem. Essa regra evita expressões ambíguas com dois intervalos negativos. A ordem matemática é preservada: primeira duração menos segunda duração. Se os valores forem iguais, a saída será 00:00:00 com sinal zero. Espaços ao redor da entrada são ignorados, mas palavras, segundos decimais, trechos de datas e sufixos AM ou PM são recusados para que cada valor aceito tenha apenas um significado.
Entenda os empréstimos e o resultado negativo
A subtração HMS segue o mesmo empréstimo usado no cálculo em papel. Se os segundos disponíveis forem menores que os segundos subtraídos, um minuto vira sessenta segundos adicionais. Depois dessa coluna, se os minutos disponíveis forem menores que os minutos subtraídos, uma hora vira sessenta minutos adicionais. A resposta informa se cada empréstimo ocorreu, o que ajuda em ensino, auditoria e explicações visuais. Quando a segunda duração é maior, a calculadora compara os comprimentos completos, subtrai a menor magnitude da maior com as mesmas regras e coloca um sinal de menos diante da diferença normalizada. Ela nunca produz componentes estranhos, como minutos negativos ou 75 segundos. Por exemplo, uma diferença negativa aparece como -02:04:09, sem misturar uma hora negativa com unidades inferiores. O campo numérico de sinal é -1, 0 ou 1, enquanto total_seconds mantém a diferença com sinal para sistemas que precisam fazer operações em vez de exibir apenas o texto formatado.
Use a saída normalizada com segurança
O resultado inclui o texto HMS normalizado, o total de segundos com sinal, o sinal e componentes absolutos separados de horas, minutos e segundos. Essa combinação permite apresentação para pessoas e cálculos posteriores sem obrigar o sistema a interpretar uma explicação. Como os valores representam durações, as horas não reiniciam em 24; 49:10:00 significa quarenta e nove horas decorridas e dez minutos. O cálculo usa somente aritmética inteira limitada. Não consulta a data atual, fuso horário, horário de verão, localidade, serviço de rede ou modelo de linguagem; assim, entradas idênticas sempre geram saídas idênticas. A ferramenta é apropriada para scripts de build, conferência de horas, testes, fluxos de mídia e relatórios reproduzíveis. Verifique o sinal antes de interpretar a direção: os componentes são sempre magnitudes não negativas. O uso no navegador é gratuito, e uma solicitação automatizada pela API usa o preço-base exibido de US$ 0,002.
Casos de uso
Comparar durações de mídia
Subtraia a duração editada da original e veja exatamente quanto foi removido ou acrescentado.
Conferir trabalho registrado
Encontre a diferença entre dois tempos acumulados mesmo que qualquer total ultrapasse 24 horas.
Verificar tempos de eventos
Compare durações planejadas e medidas preservando segundos e detalhes explícitos dos empréstimos.
Perguntas frequentes
Quanto custa uma solicitação API?
Cada solicitação API custa US$ 0,002. A calculadora no navegador é gratuita.
O resultado pode ser negativo?
Sim. Se a segunda duração for maior, o resultado normalizado começa com sinal de menos e o campo de sinal é -1.
As horas podem ser maiores que 23?
Sim. São durações decorridas, não horários do relógio, portanto as horas podem variar de 0 a 999999.
Por que minutos e segundos devem ser menores que 60?
As entradas já devem estar na notação HMS normalizada. Os empréstimos ocorrem na subtração e a saída continua normalizada.
O cálculo considera datas ou horário de verão?
Não. Ele subtrai apenas duas durações abstratas e nunca usa datas, fusos, transições de horário ou a hora atual.
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/date/hms-subtract \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"first_duration":"12:05:10","second_duration":"03:47:55"}'const res = await fetch("https://api.kit.forhosting.com/date/hms-subtract", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"first_duration": "12:05:10",
"second_duration": "03:47:55"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/hms-subtract",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"first_duration": "12:05:10",
"second_duration": "03:47:55"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/hms-subtract", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"first_duration":"12:05:10","second_duration":"03:47:55"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"first_duration":"12:05:10","second_duration":"03:47:55"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/hms-subtract", 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
{
"first_duration": "12:05:10",
"second_duration": "03:47:55"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.hms_subtract",
"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.
Limites
max_hours | 999999 |
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. |