FernandoG Postado Outubro 23, 2008 Denunciar Share Postado Outubro 23, 2008 (editado) "Função que receba dois horários em formato string, do tipo"hh:mm" e retorne a diferença entra as duas."Como que eu faço para pegar uma hora na string e transformala em floatpara que possa fazer o subtração?Obrigado pela atenção.#include <iostream> char H1[5]; char H2[5]; float Calc; main() { printf("\nDigite a Primeira Hora: "); scanf("%c",H1); printf("\nDigite a Segunda Hora: "); scanf("%c",H1); Calc=H1-H2; printf("\nA Diferença entra as duas Horas é: %f ",Calc); } Editado Outubro 23, 2008 por kuroi Adicionar tag CODE Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 FernandoG Postado Outubro 23, 2008 Autor Denunciar Share Postado Outubro 23, 2008 (editado) Galera eu consegui faze isso:Mas alquem conhec alguma função que faça isso pra mim e tambem como usa-la.#include <stdio.h> int main() { char horario[10]; int hor, min; printf("Digite o horario, formato = hh:mm\n>>> "); gets(horario); if (horario[2] == ':') { hor = ((horario[0] - '0') * 10) + (horario[1] - '0'); min = ((horario[3] - '0') * 10) + (horario[4] - '0'); } if (horario[1] == ':') { hor = (horario[0] - '0'); min = ((horario[2] - '0') * 10) + (horario[3] - '0'); } printf("%i:%i", hor, min); return 0; } Editado Outubro 23, 2008 por kuroi Adicionar tag CODE Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Durub Postado Outubro 24, 2008 Denunciar Share Postado Outubro 24, 2008 (editado) Use a função strtok do string.h e a atof (para float, ou atoi para int) do stdlib.h.E só para você saber, você não precisa do tipo float neste caso. int resolve.Abraços. Editado Outubro 24, 2008 por Durub Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 FernandoG Postado Outubro 24, 2008 Autor Denunciar Share Postado Outubro 24, 2008 Use a função strtok do string.h e a atof (para float, ou atoi para int) do stdlib.h.E só para você saber, você não precisa do tipo float neste caso. int resolve.Abraços.Ae cara valeu a dica! Da uma olha apesar do if pra comparar os minutos eles estão passando...e não tem com eu colocar tipo assim exe: printf("São 1 hora e 12 minutos de diferença");#include <stdlib.h> #include <iostream> #include <string> using namespace std; int main () { string horaEntrada_1, horaEntrada_2, hora_1, hora_2, minuto_1, minuto_2; int A_Hora, B_Hora; float A_Minuto, B_Minuto; cout << "Digite o primeiro horario, formato (hh:mm).\n>>>"; cin >> horaEntrada_1; cout <<"Digite o segundo horario, formato (hh:mm).\n>>>"; cin >>horaEntrada_2; hora_1 = horaEntrada_1.substr(0,2); minuto_1 = horaEntrada_1.substr(3,2); A_Hora = atoi(hora_1.c_str()); A_Minuto = (float)atoi(minuto_1.c_str())/60; hora_2 = horaEntrada_2.substr(0,2); minuto_2 = horaEntrada_2.substr(3,2); B_Hora = atoi(hora_2.c_str()); B_Minuto = (float)atoi(minuto_2.c_str())/60; if (A_Minuto>60) { A_Hora =(A_Hora++); A_Minuto=(A_Minuto-60); } if (B_Minuto>60) { B_Hora =(B_Hora++); B_Minuto=(B_Minuto-60); } cout << "\n A Diferenaça do primeiro horario para o segundo e " << (A_Hora+A_Minuto)-(B_Hora+B_Minuto); cout << "\n\n"; system("PAUSE"); return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Durub Postado Outubro 24, 2008 Denunciar Share Postado Outubro 24, 2008 Tente mudar esta linha (a do A_Minuto também):B_Minuto = (float)atoi(minuto_2.c_str())/60;Troque o operador / pelo operador %.Quando você fizer isso, os minutos nunca passaram de 60, então você pode retirar os dois if's.Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
FernandoG
"Função que receba dois horários em formato string, do tipo"hh:mm" e retorne a diferença entra as duas."
Como que eu faço para pegar uma hora na string e transformala em float
para que possa fazer o subtração?
Obrigado pela atenção.
Editado por kuroiAdicionar tag CODE
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.