Hallo,
ich bekomme einen String mit "7:15" oder "22:00".
Nun möchte ich einen Timer setzen, damit zu diesem Zeitpunkt etwas getriggert wird.
Soweit habe ich:
Das sollte so passen denk ich. Aber "getHours" und "getMinutes" sollte man nimmer nehmen, oder?
Und gibt es einen besseren Weg den String zu parsen? Ich habe bemerkt das wenn 25:06 eingeben wird, er das Datum um eins hochsetzt.
Ich könnte den String spliten mit ":" und die 2 String in Int konvertieren und min/max prüfen.
Aber eventuell geht es eleganter?
Danke!
ich bekomme einen String mit "7:15" oder "22:00".
Nun möchte ich einen Timer setzen, damit zu diesem Zeitpunkt etwas getriggert wird.
Soweit habe ich:
Java:
private long calculateTimeSpan(String sTime) {
Calendar timeSpan = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
try {
timeSpan.set(Calendar.HOUR_OF_DAY, sdf.parse(sTime).getHours());
timeSpan.set(Calendar.MINUTE, sdf.parse(sTime).getMinutes());
timeSpan.set(Calendar.SECOND, 0);
timeSpan.set(Calendar.MILLISECOND, 0);
} catch (ParseException e) {
e.printStackTrace();
return -1;
}
long diff = timeSpan.getTimeInMillis() - System.currentTimeMillis();
if (diff < 1) {
timeSpan.add(Calendar.DATE, 1);
diff = timeSpan.getTimeInMillis() - System.currentTimeMillis();
}
System.out.println(diff);
return diff;
}
Das sollte so passen denk ich. Aber "getHours" und "getMinutes" sollte man nimmer nehmen, oder?
Und gibt es einen besseren Weg den String zu parsen? Ich habe bemerkt das wenn 25:06 eingeben wird, er das Datum um eins hochsetzt.
Ich könnte den String spliten mit ":" und die 2 String in Int konvertieren und min/max prüfen.
Aber eventuell geht es eleganter?
Danke!