Interprete o controle de tempo de xadrez e sua duração
Controles como 90+30 reúnem dois ajustes importantes do relógio: os minutos iniciais de cada jogador e os segundos acrescentados após cada lance.
Executar grátis
Esta calculadora separa esses valores e estima o tempo máximo disponível nos dois relógios para uma quantidade informada de lances completos. Você pode usá-la para planejar rodadas, comparar ritmos, documentar torneios ou conferir a notação antes de inseri-la em um sistema de emparceiramento ou em uma programação publicada.
Entenda a notação de tempo base mais incremento
Um controle escrito como 90+30 significa que cada jogador começa com 90 minutos e recebe mais 30 segundos ao concluir cada lance. Nesta ferramenta, o valor antes do sinal de adição sempre representa minutos inteiros, e o valor depois dele representa segundos inteiros. Digite a notação sem espaços, palavras, decimais ou etapas extras. A validação aceita propositalmente uma única forma clara, em vez de tentar adivinhar uma entrada imprecisa. Assim, 5+3, 15+10 e 90+30 são inequívocos, enquanto expressões como “rápidas 15” e controles com várias etapas exigem regras não contidas na sequência. A resposta repete a notação e apresenta base_minutes e increment_seconds separadamente, facilitando a validação, o armazenamento e o uso em outro cálculo determinístico. Uma sequência malformada gera um erro de entrada, e não uma interpretação plausível, porém errada.
Veja como a duração máxima é calculada
A estimativa considera os dois relógios. Primeiro, o tempo inicial é duplicado, pois tanto as brancas quanto as pretas recebem os minutos indicados. Depois, o incremento é multiplicado pela quantidade de lances solicitada e novamente por dois, já que um lance completo inclui um movimento de cada jogador. Para 40 lances, o controle 90+30 contém duas parcelas iniciais e até 80 incrementos. O resultado é fornecido em segundos, para contas exatas, e em minutos, para leitura rápida. Trata-se do máximo alocado pelos relógios, não de uma previsão do tempo real à mesa. A partida pode terminar cedo, os jogadores podem responder sem gastar todo o tempo e pausas operacionais podem prolongar o evento. O cálculo pressupõe ainda que todo movimento contado recebe o incremento informado; ele não considera delay, penalidades, derrota no tempo nem incrementos iniciados somente após determinado lance.
Use o resultado no planejamento e na validação
Organizadores podem usar o valor máximo como referência conservadora ao definir intervalos entre rodadas, acrescentando tempo para arrumar tabuleiros, publicar emparceiramentos, deslocar jogadores, resolver decisões da arbitragem e realizar pausas. Desenvolvedores podem interpretar a notação na entrada e armazenar os dois componentes numéricos, sem espalhar divisões de texto pela aplicação. Editores também podem verificar se uma quantidade de lances é compatível com a programação anunciada. O campo move_count representa lances completos de cada jogador, não meios-lances: 40 modela até 40 movimentos das brancas e 40 das pretas. Os valores precisam ser inteiros dentro dos limites publicados, com exatamente um sinal de adição. Base ou incremento zero é permitido se o outro componente for positivo; portanto, 0+1 e 10+0 são aceitos. O controle 0+0 é recusado por não oferecer tempo jogável.
Casos de uso
Planeje intervalos entre rodadas
Estime o maior tempo disponível nos dois relógios e acrescente margens operacionais para montar uma programação realista.
Valide entradas do sistema de emparceiramento
Recuse notações malformadas antes de armazená-las ou enviar os componentes analisados ao software do evento.
Compare ritmos de xadrez
Calcule diferentes controles com a mesma quantidade de lances para comparar o tempo máximo em condições equivalentes.
Perguntas frequentes
O que significa 90+30 no xadrez?
Cada jogador começa com 90 minutos e recebe mais 30 segundos depois de concluir cada lance.
move_count indica meios-lances ou lances completos?
Indica lances completos por jogador. O valor 40 modela 40 movimentos das brancas e 40 das pretas, com até 80 incrementos.
O resultado prevê a duração real da rodada?
Não. Ele mostra o máximo alocado nos dois relógios; margens de programação e atrasos fora do relógio são separados.
O tempo base ou o incremento pode ser zero?
Sim, desde que o outro componente seja positivo. 0+1 e 10+0 são válidos, enquanto 0+0 é recusado.
Controles com várias etapas são aceitos?
Não. O analisador trata apenas uma etapa de tempo base mais incremento; tempo adicional após certo lance exige outro formato.
Quanto custa uma solicitação API?
Cada solicitação API custa US$ 0,002. O mesmo cálculo determinístico pode ser executado no navegador quando oferecido.
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/misc2/chess-clock-time-control \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"time_control":"90+30","move_count":40}'const res = await fetch("https://api.kit.forhosting.com/misc2/chess-clock-time-control", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"time_control": "90+30",
"move_count": 40
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/misc2/chess-clock-time-control",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"time_control": "90+30",
"move_count": 40
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/misc2/chess-clock-time-control", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"time_control":"90+30","move_count":40}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"time_control":"90+30","move_count":40}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/misc2/chess-clock-time-control", 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
{
"time_control": "90+30",
"move_count": 40
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "misc2.chess_clock_time_control",
"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. |