2016-04-08 11 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); 

}Java Vaadin TimeFiled'de Toplam Süre nasıl hesaplanır, yani Saat ve Saniye (HH: MM) için ayrı bir açılır menüden nasıl ayrılır?

Bu kodudur. Ayrı aşağı açılan kutulardan toplam süreyi hesaplamak istiyorum.

+0

"Toplam süre" ile ne demek istiyorsun? Soru unvanınız doğru mu (saniye yerine dakikalar)? Sonuç ne olmalı? Dize? Uzun? Vaadin kodunuzu gönderdiğinizde yararlı olur. –

cevap

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

Kodunuz çok karmaşık görünüyor. Eminim daha temiz bir çözüm var. Ve btw: Umarım üretim ortamında Exception.printStackTrace'i kullanmazsınız. Ayrıca, jenerik "İstisna" yakalama bir kod kokusu gibi görünüyor. –

İlgili konular