1

I want to calculate the Number of Days Between Any Two Dates using primefaces p:calendar this my script.

<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 using p:calendar

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

any advices for calculate two dates remaining day?

Cœur
  • 37,241
  • 25
  • 195
  • 267
ORGL23
  • 434
  • 5
  • 10

1 Answers1

1

use ManagedBean,Primefaces Date Select Ajax event and write java code like this.

xhtml page

 <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();
                }
}
    }
softpower
  • 135
  • 9
  • I want to select date from and calculate 2 dates and show it on inputfield. There are 2 p calendar. Also why you using String dateStart = "01/14/2012 09:29:58";? this – ORGL23 Jun 18 '14 at 09:09