Double umformatieren Zahlenformate?

Loki2

Erfahrenes Mitglied
Hallo

Ich habe ein Problem mit Zahlenformate. Ich lese aus einer Excel Zelle einen Wert aus. Die Excel Zelle ist mit einem Benutzerdefiniertenzahlenformat formatiert und leider kann ich die Werte aus diesen Zellen nur als double auslesen.

Wenn z.B. in der Zelle "00:08 h" steht bekomme ich ein double mit dem Wert 0.01528935186797753 . Das formatiere ich dann so um
Code:
sDateFormat = new SimpleDateFormat("HH:mm");
value = sDateFormat.format(HSSFDateUtil.getJavaDate(d))
So bekomme ich dann auch in Java 00:08 was völlig korrekt ist. Jetzt habe ich aber das Problem das in der Celle "117:13 h" steht. Das gibt den double Wert 4.884166666684905 und ich weiss einfach nicht wie ich das jetzt wieder in "117:13" umwandel. Mach ich das wie oben bekomme ich 21:13. Das ist mist. Hat vielleicht jemand eine Idee wie ich das korrekt umwandel?

Vielen Dank.

Gruß und so
Loki2
 
Ich würds so machen:
Java:
import java.util.Calendar;
import java.util.Date;
....

int full = -1;
if( d > 1 )
{
  full = (int) d;
  d = d - full;
}
Date date = HSSFDateUtil.getJavaDate(d);
Calendar cal = Calendar.getInstance();
cal.setTime( date );

int hours = cal.get( Calendar.HOUR_OF_DAY ) + ( full * 24 );
int minutes = cal.get( Calendar.MINUTES );

StringBuffer time = new StringBuffer( hours + ":" + minutes );

Gruß
Tobias
 
Hi,

super, vielen Dank. Das bringt mich schon mal ein ganzes Stück weiter. Was ich allerdings noch nicht verstehe ist wieso aus Werten wie 00:22 immer -24:22 wird?

Gruß und so
Loki2
 
Ups sorry :D Das kommt davon wenn man mal eben ein wenig Code schreibt ohne groß drüber nachzudenken ;)
Schreibt anstatt
Java:
int full = -1;
Java:
int full = 0;
, dann sollte es klappen.
Gruß
Tobias
 
Zurück