Jump to content

[Resolvido] Converter segundos em horas


xplode_me

Recommended Posts

xplode_me

Ola!

O meu router novo da-me o valor de tempo da ligaçao actual em segundos (enfim!).

Com este programinha rapido pretendo começar com as bases do C e ao mesmo tempo fazer algo util!

#include <stdio.h>
/* Converter o valor em segundos dado pelo router
    para um valor em horas! (Da mais jeito! ) */

int secondsToHours()
{
int seconds;
int hours;

scanf("%d", &seconds);		
hours = (seconds/3600);

printf("Já passaram, ");
printf("%d", hours);
printf(" horas desde o último reboot do router!\n"); 
return 0;
	}


float main()
	{
int seconds;

secondsToHours(seconds);
	}

A questao que se poe eh: Eu quero o valor das horas num formato "1.5 horas" ou seja, com 1 casa decimal.

Se puser os tipos como double fico com 6 dig de precisao o que nao quero... Please help me! ;)

:)

Link to post
Share on other sites
xplode_me

#include <stdio.h>
/* Converter o valor em segundos dado pelo router
    para um valor em horas! (Da mais jeito! ) 
Changelog:
V1.0 - Versao inicial
V1.1 - Horas devolvidas no formato h.hh (2 casas decimais) */

float secondsToHours()
{
float seconds;
float hours;

scanf("%f", &seconds);		
hours = (seconds/3600);

printf("Já passaram, \n");
printf("%.2f", hours);
printf(" horas desde o último reboot do router!\n"); 
return 0;
	}


float main()
	{

secondsToHours();
	}

Já devolve o valor em h.hh :thumbsup: Agora é so converter a parte decimal para minutos et voilá :)

Link to post
Share on other sites

Os minutos sao

1,5H = 1H.30Min

1H já está definida agora só falta definir o 0,5, visto que 1,5-1 = 0,5

0,5 de 60Min, que em Matemática se traduz :

0,5 x 60 = 30

Ou seja, o .hh = .hhx60

Que resulta em : h.hh, sendo igual a 1.30 -> 1Hora e 30Minutos

Isto é uma das variadas maneiras de fazeres isto, havia uma maneira para aí pelo fórum :D

Link to post
Share on other sites
xplode_me

Nova versão, já faz aquilo a que me propus. Agora vou tratar de fazer isto comer com a variavel por argumento quando o executavel é chamado! :)

#include <stdio.h>
/* Converter o valor em segundos dado pelo router
    para um valor em horas! (Da mais jeito! ) 
Changelog:
V1.0 - Versao inicial
V1.1 - Horas devolvidas no formato h.hh (2 casas decimais)
V1.2 - Horas devolvidas no formato hh.mm */

float secondsToHours()
{
float seconds;
float hours;
float minutes;
scanf("%f", &seconds);		
hours = ((int)(seconds/3600));
minutes = ((((seconds/3600) - ((int)(seconds/3600)))*60));


printf("Já passaram, ");
printf("%.0f", hours);
printf(" horas e ");
printf("%.0f", minutes);
printf(" minutos desde o último reboot do router!\n");	
return 0;
	}


float main()
	{

secondsToHours();
	}

:cheesygrin:

Link to post
Share on other sites
brink@ero

Alguém me pode ajudar a fazer isto?

Quero passar o valor dos segundos como argumento em vez de passar com o scanf.. Please help!

Assim:

float secondsToHours(float seconds)
{
....
}

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.