Méthode classique, mais la tâche est parfois très ennuyeuse quand on doit formater des décimaux en heure/minutes/secondes, donc je me suis fait une méthode faite-maison qui résout bien le problème:
/**
* Example:<br>
* <code>
* new ScoreboardWrapper().formatMe(2.5); // => 2:30:0 (2 hours:30 minutes:0 seconds
* </code>
* @param hour Can be a Double|Integer object
* @return formatted hour
* @throws Exception
*/
public String formatMe(double hour) throws Exception, AssertionError
{
if(hour > 0.0)
{
double base = (hour * 3600);
int base_minute = (int)base/60;
int seconds = (int)base%60;
int hours = base_minute/60;
int minutes = base_minute%60;
return Integer.toString(hours) + ":" + Integer.toString(minutes) + ":" + Integer.toString(seconds);
}
throw new Exception("hour =< 0");
}
Alex, si tu voulais te faire les dents sur Dart, tu pourras aisément t'en faire un petit exercice pour convertir cette méthode Java en Dart. (la syntaxe est très proche, donc ça ne devrait pas trop te prendre de temps
)