2016-04-08 5 views
0
if (tfTimeIn.getValue() != null && tfTimeOut.getValue() != null) { 
      Long min1 = tfTimeOut.getMinutesValue(); 
      Long min2 = tfTimeIn.getMinutesValue(); 
      Long hr1 = tfTimeOut.getHoursValue(); 
      Long hr2 = tfTimeIn.getHoursValue(); 
     // Here I need the calculations 
      String hrsTotalString = hrsTotal.toString(); 
      String minTotalString = minTotal.toString(); 
      tfTotalTime.setValue(hrsTotalString + ":" + minTotalString); 

}Wie Gesamtzeit in Java Vaadin TimeFiled, d. H. Separate Drop-Down für Stunden und Sekunden (HH: MM) berechnen?

Dies ist der Code. Ich möchte die Gesamtzeit aus den separaten Dropdown-Boxen berechnen.

+0

Was meinst du mit "Gesamtzeit"? Ist der Titel Ihrer Frage korrekt (Minuten statt Sekunden)? Was sollte das Ergebnis sein? Schnur? Lange? Wäre nützlich, wenn Sie Ihren Vaadin-Code posten. –

Antwort

0
/* 
* Total time calculation. 
*/ 
private void getTotalHours() { 
    try { 
     // TODO Auto-generated method stub 
     if (tfTimeIn.getValue() != null && tfTimeOut.getValue() != null) { 
      Long min1 = tfTimeOut.getMinutesValue(); 
      Long min2 = tfTimeIn.getMinutesValue(); 
      Long hr1 = tfTimeOut.getHoursValue(); 
      Long hr2 = tfTimeIn.getHoursValue(); 
      Long hrsTotal = new Long("0"); 
      Long minTotal = new Long("0"); 
      if ((hr2 - hr1) == 1) { 
       hrsTotal = (long) 1; 
       if (min1 != 0 && min2 == 0) { 
        minTotal = (long) 60 - min1; 
       } else if (min1 == 0 && min2 != 0) { 
        minTotal = min2; 
       } else if (min1 != 0 && min2 != 0) { 
        minTotal = min2; 
        Long minOne = (long) 60 - min1; 
        Long minTwo = min2; 
        minTotal = minOne + minTwo; 
       } 
       if (minTotal >= 60) { 
        hrsTotal++; 
        minTotal = minTotal % 60; 
       } 
      } else if ((hr2 - hr1) > 0) { 
       hrsTotal = (hr2 - hr1); 
       if (min1 != 0 && min2 == 0) { 
        minTotal = (long) 60 - min1; 
       } else if (min1 == 0 && min2 != 0) { 
        minTotal = min2; 
       } else if (min1 != 0 && min2 != 0) { 
        minTotal = min2; 
        Long minOne = (long) 60 - min1; 
        Long minTwo = min2; 
        minTotal = minOne + minTwo; 
       } 
       if (minTotal >= 60) { 
        minTotal = minTotal % 60; 
       } 
      } else if ((hr2 - hr1) == 0) { 
       if (min1 != 0 || min2 != 0) { 
        if (min2 > min1) { 
         hrsTotal = (long) 0; 
         minTotal = min2 - min1; 
        } else { 
         Notification.show("Enter A Valid Time"); 
         tfTotalTime.setValue("00.00"); 
        } 
       } 
      } else { 
       Notification.show("Enter A Valid Time"); 
       tfTotalTime.setValue("00.00"); 
      } 
      String hrsTotalString = hrsTotal.toString(); 
      String minTotalString = minTotal.toString(); 
      if (hrsTotalString.trim().length() == 1) { 
       hrsTotalString = "0" + hrsTotalString; 
      } 
      if (minTotalString.trim().length() == 1) { 
       minTotalString = "0" + minTotalString; 
      } 
      tfTotalTime.setValue(hrsTotalString + ":" + minTotalString); 
     } else { 
      tfTotalTime.setValue("00.00"); 
     } 
    } 
    catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
+0

Ihr Code sieht sehr kompliziert aus. Ich bin mir sicher, dass es eine sauberere Lösung gibt. Übrigens: Ich hoffe, Sie verwenden Exception.printStackTrace nicht in der Produktionsumgebung. Darüber hinaus sieht der Haken der generischen "Exception" wie ein Code-Geruch aus. –