10 votes

Convertir les secondes en jours, minutes et secondes

On m'a lancé le "défi" de convertir les secondes en format Jours, Minutes et Secondes.

Par exemple : 31600000 = 365 jours, 46 minutes, 40 secondes.

using namespace std;
const int hours_in_day = 24;
const int mins_in_hour = 60;
const int secs_to_min = 60;

long input_seconds;
cin >> input_seconds;

long seconds = input_seconds % secs_to_min;
long minutes = input_seconds / secs_to_min % mins_in_hour;
long days = input_seconds / secs_to_min / mins_in_hour / hours_in_day;

cout << input_seconds << " seconds = "
     << days << " days, "
     << minutes << " minutes, "
     << seconds << " seconds ";

return 0;

Il fonctionne et donne la bonne réponse, mais après l'avoir terminé, j'ai regardé comment d'autres personnes l'avaient abordé et leurs réponses étaient différentes. Je me demande si j'ai raté quelque chose.

6voto

John Dibling Points 56814

L'un des aspects de la programmation est qu'il n'y a jamais qu'une seule façon de faire quelque chose. En fait, si je devais m'y mettre, je pourrais trouver une douzaine de façons complètement différentes d'y parvenir. Vous ne manquez rien si votre code répond aux exigences.

Pour vous amuser, voici un moyen de formater les heures:minutes:secondes sous Windows ( elapsed est un double et représente le nombre de secondes écoulées depuis... quelque chose)

sprintf_s<bufSize>(buf, "%01.0f:%02.0f:%02.2f", floor(elapsed/3600.0), floor(fmod(elapsed,3600.0)/60.0), fmod(elapsed,60.0));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X