Ir ao conteúdo
  • Cadastre-se

Calcular diferença entre hora inicial e hora final


cleidimarviana

Posts recomendados

Estou tentando escrever um programa que ler dois horarios (hora e minuto de cada um) pra calcular diferença entre eles. Considerando que o segundo horario sempre vem apos o primeiro, e que a hora esta escrita no formato 24 horas (ou seja, 4 horas da tarde sera representado por 16). Preciso utilizar uma funcao no programa principal. A saida deve ser apenas o numero de minutos, por exemplo, para a entrada: 12 00 13 01 (o primeiro horario e doze horas e zero minutos e o segundo e treze horas e um minuto) o programa deve imprimir: \61.

O único problema é que se eu colocar a primeira hora 23:00hr e a segunda 02:00hr () o valo vai dar número negativo. Como resolver isso! :(

Link para o comentário
Compartilhar em outros sites

Não entendi muito bem qual o problema. Você quer que a ordem de entrada não interfira no resultado e o resultado dê sempre positivo, é isso?

Se você quer que o valor dê sempre positivo verifique qual dos valores incluidos é o menor e qual é o maior e efetue os calculos normalmente. Dessa forma a ordem não fará diferença.

Link para o comentário
Compartilhar em outros sites

Hum... Já encontrei a Solução! Aprendiz de Programador! rs

Pergunta:

Escreva um programa que leia dois horarios (hora e minuto de cada um) e calcule a diferenca

de minutos entre eles. Considere que o segundo horario sempre vem apos o primeiro, e

que a hora esta escrita no formato 24 horas (ou seja, 4 horas da tarde sera representado

por 16). Escreva uma func~ao que recebe um horario (horas e minutos) e retorna o valor

correspondente de minutos. Utilize essa func~ao no seu programa principal. A sada deve

ser apenas o numero de minutos, por exemplo, para a entrada: 12 00 13 01 (o primeiro

horario e doze horas e zero minutos e o segundo e treze horas e um minuto) o programa

deve imprimir: \61". Prof.: Giselle Reis

Ficará Assim:

#include <stdio.h>

int mintotal(int hora, int minuto) {

int r = (hora*60) + minuto;

return r;}

int main (){

int h1, m1, h2, m2,r1,r2, total; //variaveis declaradas

scanf ("%d%d", &h1, &m1); //armazendando valores da hora inicial

r1 = mintotal(h1, m1);

scanf ("%d%d", &h2, &m2);

r2 = mintotal(h2, m2);

total = r2-r1;

if (total < 0){

total +=1440; //calculo

printf ("%d minutos de diferenca!\n\n", total);} //impressão do resultado

else printf ("%d minutos de diferenca!\n\n", total); //impressão do resultado

return 0;

}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...