Om man har ett värde i antalet sekunder och på smidigast möjliga sätt vill omvandla det till formatet Jag tänker mig någonting i stil med att konvertera till ett datum, och sedan använda inbyggda funktioner för utskrift, typ >vad är er "snyggaste" kod som utför det? Snyggare? Nja. Däremot lite kortare: Eftersom du i ditt exempel ville returnera strängen kan du använda dig av String.format med samma parametrar som i printf-exemplet.Snyggast lösning
HHh MMm SSs, vad är er "snyggaste" kod som utför det?
Som exempel om vi har siffran 304331, då ska det skrivas ut: 84h 32m 11s.
Det ska alltid stå två siffror, hade det varit 2h skulle det stå 02h osv...
public String getLängden()
{
//Räknar ut hur många timmar, minuter, sekunder som motsvaras av ett tal
//skrivet i sekunder.
//Ställer in hur decimaltalet ska "se ut"/presenteras
NumberFormat decimalformatering = new DecimalFormat("#00");
//Mina grymma beräkningar ^^ alla sätt som funkar e bra :P
double antal_sek = ETT GIVET VÄRDE
double sek = antal_sek % 60;
double min = ((antal_sek - sek) / 60) % 60;
double tim = (antal_sek - (60 * min + sek)) / 3600;
return decimalformatering.format(tim) + "h " + decimalformatering.format(min) + "m " + decimalformatering.format(sek) + "s";
}
Sv: Snyggast lösning
Sv:Snyggast lösning
Har oxå tänkt det sättet... Visa..Sv: Snyggast lösning
int s = 304331;
System.out.printf("%2dh %2dm %2ds\n", (s / 3600), ((s % 3600) / 60), (s % 60));
Sv: Snyggast lösning