Esta API recebe dados de uma viagem com trechos e calcula automaticamente os horários de saída e chegada de cada trecho com base no horário de expediente, tempo de almoço e regras como ignorar domingos.
"npm install""node index.js"A API ficará disponível em
"http://localhost:3434/calcular"
Envie um POST com o seguinte JSON no body para a rota "/calcular":
[
{
"dadosSaida": {
"data_saida": "2025-05-07",
"horario_inicio": "06:00",
"horario_fim": "18:00",
"duracao_almoco": "30:00",
"ignorar_domingos": false
},
"trechos": [
{
"origem": "Antônio Prado, RS",
"destino": "Fazenda Rio Grande, State of Paraná",
"distancia": "498 km",
"duracao": "07:01"
},
{
"origem": "Fazenda Rio Grande, State of Paraná",
"destino": "Curitiba, State of Paraná",
"distancia": "29 km",
"duracao": "00:39"
}
]
}
]A API retorna os dados de cada trecho com data e hora de saída e chegada calculadas, conforme o expediente e as regras fornecidas:
[
{
"origem": "Antônio Prado, RS",
"destino": "Fazenda Rio Grande, State of Paraná",
"SAIDA": "2025-05-07 06:00",
"CHEGADA": "2025-05-07 13:01",
"distancia": "498 km",
"duracao": "07:01"
},
{
"origem": "Fazenda Rio Grande, State of Paraná",
"destino": "Curitiba, State of Paraná",
"SAIDA": "2025-05-07 13:01",
"CHEGADA": "2025-05-07 13:40",
"distancia": "29 km",
"duracao": "00:39"
}
]- A viagem inicia na
"data_saida"e no"horario_inicio". - Se ultrapassar o
"horario_fim", continua no próximo dia útil. - Se
"ignorar_domingos"fortrue, pula domingos. - O tempo de
"duracao_almoco"é descontado do expediente do dia apenas uma vez por dia.
"curl -X POST http://localhost:3434/calcular \
-H \"Content-Type: application/json\" \
-d @entrada.json"