//***************************************************************//
// Celso Garcia da Silva - RA 435457 //
// Algoritmo e Programação I //
// Atividade AA3_2 //
//***************************************************************//
/* Este sistema verifica a duração de um jogo, o usuario fornece as horas iniciais e finais
retornando 99h99min caso o jogo dure mais que 2 horas ou as datas sejam incorretas, caso
contrário o sistema fornecerá o tempo da duração do jogo no fomrato xhymin */
# include <stdio.h>
# include <stdlib.h>
// protótipo da função para converter tempo em minutos
int obter_total_minutos(int x, int y, int r, int v);
int main(int args, char * arg[])
{
int hora1, min1, hora2, min2;
int horaSaida, minSaida;
int totalMinutos;
printf("Digite a hora inicial: ");
scanf("%d", &hora1);
printf("Digite a minuto inicial: ");
scanf("%d", &min1);
printf("Digite a hora final: ");
scanf("%d", &hora2);
printf("Digite a minuto final: ");
scanf("%d", &min2);
printf("\n\n");
// chama a função para converter o tempo em minutos
totalMinutos = obter_total_minutos(hora1, min1, hora2, min2);
// verificar se datas estão corretas e se tempo do jogo menor é que 2 horas
if ((hora1 < 0) || (hora1 > 23) || (hora2 < 0) || (hora2 > 23) || (min1 < 0)
|| (min1 > 59) || (min2 < 0) || (min2 > 59) || (totalMinutos > 120))
{
horaSaida = 99;
minSaida = 99;
printf("%dh%dmin\n", horaSaida, minSaida);
printf("\n\n");
}
else
{
// converte minutos em hora e minutos
horaSaida = totalMinutos / 60;
minSaida = totalMinutos % 60;
printf("%02dh%02dmin\n", horaSaida, minSaida);
printf("\n\n");
}
system("PAUSE");
return 0;
}
int obter_total_minutos(int x, int y, int v, int r)
{
int converteData1Minutos, converteData2Minutos;
int totalMinutosJogado;
if (v >= x)
{
// converte tempo em minutos quando data final maior que data inicial
converteData1Minutos = x * 60;
converteData1Minutos = converteData1Minutos + y;
converteData2Minutos = v * 60;
converteData2Minutos = converteData2Minutos + r;
totalMinutosJogado = converteData2Minutos - converteData1Minutos;
}
else
{
// se data final menor que data inicial sistema assume que jogo virou o dia
converteData1Minutos = x * 60;
converteData1Minutos = converteData1Minutos + y;
converteData2Minutos = v * 60;
converteData2Minutos = converteData2Minutos + r;
totalMinutosJogado = (1440 - converteData1Minutos) + converteData2Minutos;
}
return totalMinutosJogado;
}