float zahlen in Zeit umwandeln

Plasmaschlag

Grünschnabel
Hallo Leute,

hab mir mal ein kleines Programm zur berechnung der verbleibenden Zeit für Downloads geschrieben. Mein Probem ist nur, dass bei mir auch z.B. 15,87 Stunden als Ergebniss kommt.
Kann mir einer von euch sagen, wie man die float Zahlen in Zeit umwandeln kann?
Code:
#include <stdio.h>
#include <windows.h>

int main (void)
{
 float kbs, mb, getinmb, zeit, erg, erg2;
 char check;

 do{
    printf("Downloadgeschwindigkeit in kB/s: ");
    scanf("%d", &kbs);

    printf("Groesse der gewuenschten Datei in MB: ");
    scanf("%d", &mb);

  do{
   getinmb=kbs/1024*60*60; erg=mb/getinmb;

        if(erg<1){
           erg2=erg*60;
           printf("\nIhr Download dauert noch %.2f Minuten.\n", erg2);break;}

        if(erg>1){
           printf("\nIhr Download dauert noch %.2f Stunden.\n", erg);break;}

  }while(0);

        printf("Weitere Berechnung? y/n : ");
        scanf(" %c", &check);
        printf("\n");

  }while(check=='y');

 system ("pause");
return 0;
}
 
Hi und Willkommen bei tutorials.de,

zB. so:
C++:
//erg sind die Komma-Stunden
int stunden, minuten, sekunden;

stunden = (int)erg;
erg = (erg - (float)stunden) * 60.0;
minuten = (int)erg;
erg = (erg - (float)minuten) * 60.0;
sekunden = (int)erg;
 
Ich weiß zwar noch nicht genau wie ich das einbaue, aber ich probier mal nen bisschen herum. :)
Falls ich das bis morgen nicht hinbekomme schreib ich nochmal.
 
Reinkopieren an ein Stelle, wo die Kommastunden schon in erg sind.
Danach stunden, minuten und sekunden ausgeben.
 
Wenn ich mit 350 kb/s Downloade und 18.000 mb brauchte, dauert der Download dann
14h 38m 2sek? Wenn ja, dann hab ichs richtig gemacht.

Ps: Meine Anzeige ist jetzt gerade so: 10:4:12 Stunden. Wie schaffe ich es,
dass anstatt der :4: :04: steht? Bestimmt etwas an der Ausgabe %d ändern,
aber ich weiß nur wie man die Nachkommastellen bei float Zahlen bestimmt. (%.2f z.B.)
 

Neue Beiträge

Zurück