Ir para conteúdo
Fórum Script Brasil
  • 0

Função


FernandoG

Pergunta

"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.

#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 por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

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 por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

  • 0
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;   
}

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...