Wynik czasu w formie hh:mm:ss C++

nowix666

Użytkownik
Dołączył
Luty 16, 2008
Posty
34
Witam pisze mały programik tak dla przypomnienia c++. I mam problem. Mam kilka działań w programie i wynikiem jest czas, dokładniej czas wyrażony w sekundach. Jak zrobić żeby czas był w formacie hh::mm::ss. Z góry dzięki za pomoc.
P.S. Piszę w M$ VC++ '05.
 

spiterbot

Użytkownik
Dołączył
Listopad 1, 2007
Posty
143
<div class='quotetop'>CYTAT(nowix666 @ 3.05.2009, 13:11) <{POST_SNAPBACK}></div>
Witam pisze mały programik tak dla przypomnienia c++. I mam problem. Mam kilka działań w programie i wynikiem jest czas, dokładniej czas wyrażony w sekundach. Jak zrobić żeby czas był w formacie hh::mm::ss. Z góry dzięki za pomoc.
P.S. Piszę w M$ VC++ '05.[/b]
PobierzLokalnyCzas ;]
 

bziomek

Użytkownik
Dołączył
Lipiec 14, 2008
Posty
51
Jeśli ten czas w sekundach jest liczbą całkowitą s typu int, to
<
:
s/3600 - są to godziny,
(s%3600)/60 - minuty, natomiast
(s%3600)%60 - sekundy szukanego czasu w formie godziny:minuty:sekundy
<
...

Zdaje się, że jakoś tak to będzie, ale głowy nie dam, bo w c++ nie siedzę.

Pozdro
<
.
 

nowix666

Użytkownik
Dołączył
Luty 16, 2008
Posty
34
Nie wiedziałem jak to zrobić to napisałem parę działań
<
(piszę to dla innych potrzebujących):
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>
int wyniksec = //wynik w sekundach
int wynikh = wyniksec/3600; //zmienna wynikh zwraca nam godziny
float wynikhx = (float)wyniksec/(float)3600;
float wynikhxx = wynikhx - Convert::ToDouble(wynikh);
float liczbapom = wynikhxx*(float)3600;
int min = (int)liczbapom/60; //zmienna min zwraca nam minuty
float minx = (float)liczbapom/(float)60;
float secx = Convert::ToDouble(minx) - Convert::ToDouble(min);
int sec = (float)secx*60; //zmienna sec zwraca nam sekundy
</div>

Na pewno są tu jakieś błędy więc w razie czego proszę o poprawienie
<
 
Do góry Bottom