Bei meinem Simple Shutdown habe ich gerade das Problem gehabt, wie ich die Differenz zwischen zB. Samstag 17:30 Uhr und Sonntag 05:30 Uhr bekomme.
In diesem Fall, funktioniert es nicht, einfach die größere Zeit, von der kleineren zu subtrahieren.
Lösung:
1 2 3 4 5 6 7 |
Date date3 = null; try { date3 = format.parse("25:00"); } catch (ParseException e) { e.printStackTrace(); } long difference = date3.getTime() - (date1.getTime()) + date2.getTime(); |
Wichtig sind hierbei Zeile 3 und Zeile 7.
Komplette Methode:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
private void shutdownByTime(String time) { String time1 = timeNow("HH:mm"); SimpleDateFormat format = new SimpleDateFormat("HH:mm"); Date date1 = null; Date date2 = null; try { date1 = format.parse(time1); date2 = format.parse(time); } catch (ParseException e) { e.printStackTrace(); } if (date2.getTime() > date1.getTime()) { long difference = date2.getTime() - date1.getTime(); // in Millisekunden eingabe("PC wird in " + String.valueOf(difference / 60000) + " Minuten heruntergefahren"); } else if (date2.getTime() < date1.getTime()) { //Uhrzeit ist am nächsten Tag Date date3 = null; try { date3 = format.parse("25:00"); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } long difference = date3.getTime() - (date1.getTime()) + date2.getTime(); } fireShutdown(Integer.parseInt(String.valueOf(difference / 1000))); } |