2014-06-18 3 views
1

primefaces p : calendar my script를 사용하여 임의의 두 날짜 간의 일수를 계산하고 싶습니다.두 날짜 간의 일수 계산 방법 primeface calendar

<script>  

var calculate = function() { 
var from = document.getElementById("from").value; 
      var fromdate = from.slice(3, 5); 
      fromdate = parseInt(fromdate); 
      var frommonth = from.slice(0, 2); 
      frommonth = parseInt(frommonth); 
      var fromyear = from.slice(6, 10); 
      fromyear = parseInt(fromyear); 
      var to = document.getElementById("to").value; 
      var todate = to.slice(3, 5); 
      todate = parseInt(todate); 
      var tomonth = to.slice(0, 2); 
      tomonth = parseInt(tomonth); 
      var toyear = to.slice(6, 10); 
      toyear = parseInt(toyear); 
      var oneDay = 24*60*60*1000; 
      var firstDate = new Date(fromyear,frommonth,fromdate); 
      var secondDate = new Date(toyear,tomonth,todate); 

      var diffDays = Math.round(Math.abs((firstDate.getTime()-  
         secondDate.getTime())/(oneDay))); 
      if (diffDays) 
      document.getElementById("result").innerHTML=diffDays; 
      } 

        </script> 

primeface 사용 P : 일정 일 나머지 계산 두 날짜에 대한

<p:calendar id="from" onselect="calculate();" onKeyUp="calculate();" /> 
<p:calendar id="to" onselect="calculate();" onKeyUp="calculate();" /> 
<h:outputText id="result" /> 

어떤 조언을?

답변

1

ManagedBean, Primefaces 사용 Ajax 이벤트를 선택하고 이와 같은 Java 코드를 작성하십시오.

XHTML 페이지

<p:calendar id="dateStart" value="#{ManagedBean.dateStart}" > 
      <p:ajax event="dateSelect" listener="#{ManagedBean.dateDiff}" /> 
     </p:calendar> 

     <p:calendar id="dateEnd" value="#{ManagedBean.dateEnd}"> 
      <p:ajax event="dateSelect" listener="#{ManagedBean.dateDiff}" /> 
     </p:calendar> 

     <p:inputText id="dateDiffValue" value="#{ManagedBean.dateDiffValue}" /> 

JAVA

private java.util.Date dateStart; 
private java.util.Date dateEnd; 
private String dateDiffValue; 
//{getter and setter} 

    public void dateDiff(SelectEvent event) { 


     if(dateStart!=null && dateEnd!=null) 
{ 
       //HH converts hour in 24 hours format (0-23), day calculation 
       SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); 

       Date d1 = null; 
       Date d2 = null; 

       try { 
        d1 = format.parse(dateStart); 
        d2 = format.parse(dateEnd); 

        //in milliseconds 
        long diff = d2.getTime() - d1.getTime(); 

        long diffSeconds = diff/1000 % 60; 
        long diffMinutes = diff/(60 * 1000) % 60; 
        long diffHours = diff/(60 * 60 * 1000) % 24; 
        long diffDays = diff/(24 * 60 * 60 * 1000); 

      dateDiffValue=diffDays+"-"+diffHours+":"+diffMinutes+":"+diffSeconds; 

       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
} 
    } 
+0

나는 에서 날짜를 선택하고이 날짜를 계산하고 inputfield에 그것을 보여주고 싶다. 2 피 캘린더가 있습니다. 또한 왜 당신은 문자열을 사용하여 dateStart = "01/14/2012 09:29:58"; 이 – ORGL23

관련 문제