Calculadora de ângulo do relógio
Às 3:30 os ponteiros formam 75 graus, e não 90, porque o das horas já avançou rumo às quatro. Digite a hora e os minutos e receba esse menor ângulo e a posição exata de cada ponteiro. 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
- Hora
- 3
- Minuto
- 30
- Ponteiro das horas (°)
- 105
- Ponteiro dos minutos (°)
- 180
- Ângulo (graus)
- 75
A calculadora de ângulo do relógio resolve um enigma clássico com aritmética exata: dada uma hora e um minuto em um mostrador analógico de doze horas, qual é o menor ângulo entre os dois ponteiros? Ela leva em conta que o ponteiro das horas continua se movendo conforme os minutos passam, então às 3:30 a resposta é 75 graus, não 90. Você envia dois números e recebe a posição de cada ponteiro e o ângulo entre eles, determinístico e idêntico a cada chamada.
Por que a resposta ingênua está errada
Pergunte a alguém o ângulo entre os ponteiros às 3:30 e muitos dirão 90 graus: o ponteiro dos minutos aponta para o seis, o das horas para o três, um quarto do mostrador. Mas o ponteiro das horas não fica parado esperando a próxima hora — às três e meia ele já percorreu metade do caminho até as quatro. Cada ponteiro ocupa, portanto, uma posição precisa: o dos minutos avança seis graus por minuto, enquanto o das horas avança trinta graus por hora mais meio grau por minuto.
Às 3:30 o ponteiro das horas está a 105 graus a partir do doze, o dos minutos a 180, e a separação real é de 75 graus. Esta calculadora de ângulo do relógio aplica exatamente esse modelo, de modo que o resultado é a resposta geométrica verdadeira, e não a aproximação comum.
O mesmo raciocínio explica todos os casos conhecidos: às 6:00 os ponteiros estão opostos a 180 graus, às 12:00 se sobrepõem a 0, e às 9:15 o ponteiro das horas já avançou um quarto do caminho até as dez, dando 172.5 graus em vez de 180.
Como o ângulo é calculado
O solucionador converte cada entrada em uma posição medida em graus no sentido horário a partir do doze. A posição do ponteiro dos minutos é simplesmente seis vezes o valor do minuto, cobrindo os 360 graus em sessenta minutos. A posição do ponteiro das horas é trinta vezes a hora — reduzida módulo doze para que 12 se comporte como 0 — mais meio grau por minuto, porque ele completa uma volta inteira em doze horas.
A diferença absoluta entre essas duas posições dá o arco percorrido de um ponteiro ao outro em uma direção; tomando o mínimo entre esse arco e seu complemento até 360 obtém-se o menor ângulo, sempre entre 0 e 180 graus inclusive.
Onde ele se encaixa na prática
Plataformas de preparação para entrevistas o usam para corrigir automaticamente as respostas dos candidatos ao clássico enigma do relógio: envie um horário, compare a fórmula do candidato com o valor exato. Sites educacionais e folhas de exercícios geram perguntas e gabaritos em massa, com as posições de cada ponteiro incluídas para que um diagrama possa ser desenhado ao lado de cada exercício. Backends de jogos e enigmas validam as respostas dos usuários no servidor sem reimplementar a fórmula em cada cliente.
Casos de uso
Corrija um enigma de entrevista automaticamente
Compare a fórmula de um candidato para o problema do ângulo do relógio com o valor exato para qualquer hora e minuto, no servidor.
Gere folhas de exercícios com gabarito
Produza exercícios de leitura de relógio em massa, com a posição de cada ponteiro incluída para que diagramas e respostas fiquem consistentes.
Valide respostas de jogos ou quizzes
Verifique a resposta de um jogador sobre o ângulo entre os ponteiros sem expor a lógica da solução no cliente.
Perguntas frequentes
Quanto custa?
Também é grátis executar no seu navegador nesta página.
Qual ângulo é retornado?
Sempre o menor ângulo entre os dois ponteiros, entre 0 e 180 graus inclusive. O ângulo reflexo nunca é retornado.
Quais intervalos de entrada são aceitos?
Hora de 1 a 12 em um mostrador de doze horas, minuto de 0 a 59.
O ponteiro das horas se move com os minutos?
Sim. O ponteiro das horas avança meio grau por minuto, então às 3:30 o ângulo é de 75 graus, não de 90.
O resultado é determinístico?
Completamente. Não há rede, relógio ou aleatoriedade envolvidos; a mesma entrada sempre retorna uma saída idêntica byte a byte.
Posso passar horários no formato de 24 horas?
Passe a hora reduzida ao mostrador de 12 horas: 15:20 deve ser enviado como hora 3, minuto 20. Valores de hora acima de 12 são rejeitados.
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/clock-angle \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"hour":3,"minute":30}'const res = await fetch("https://api.kit.forhosting.com/math/clock-angle", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"hour": 3,
"minute": 30
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/clock-angle",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"hour": 3,
"minute": 30
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/clock-angle", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"hour":3,"minute":30}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"hour":3,"minute":30}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/clock-angle", 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
{
"hour": 3,
"minute": 30
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.clock_angle",
"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
O mesmo código roda de graça no seu navegador e como endpoint de API pago, então o resultado que você testa é o resultado que você publica.
Como o ângulo é calculado
A validação da entrada é estrita: a hora deve estar entre 1 e 12 em um mostrador de doze horas, e o minuto entre 0 e 59, e qualquer valor fora desses intervalos é rejeitado com um erro invalid_input claro antes de qualquer cálculo. Os resultados são arredondados para doze casas decimais para que a saída JSON seja estável byte a byte entre máquinas e linguagens.
Onde ele se encaixa na prática
O endpoint é pequeno, rápido e completamente determinístico, o que facilita a integração em qualquer lugar. Cada chamada custa US$ 0,002, sem adicional por unidade: a entrada são dois números e a saída um objeto pequeno, então o custo de um lote de mil verificações continua sendo uma fração de centavo.