-5

I wanted to calculate date between two dates but some solutions on stack overflow doesn't work with me in some case f.e : when end date start after some days than the start day

Zun
  • 1,553
  • 3
  • 15
  • 26
  • Please re-read carefully https://stackoverflow.com/help/how-to-ask your question is not specific enough without your own code context and citations when you mention your lack of success with other stackoverflow posts. – Léa Gris Aug 13 '19 at 11:00

1 Answers1

-2

so with this code i resolved all the issues and it is working fine now and forever :)

private String getDifferenceBtwDates (String dateDebut, String dateFin){

    if (StringUtility.isEmptyOrNull(dateDebut) || StringUtility.isEmptyOrNull(dateFin)){
        return "0" ;
    }else {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
        Date startDate = null;
        Date finDate = null;
        try {
            startDate = sdf.parse(dateDebut);
            finDate = sdf.parse(dateFin);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        Calendar calendar1 = Calendar.getInstance();
        Calendar calendar2 = Calendar.getInstance();
        calendar1.setTime(startDate);
        calendar2.setTime(finDate);

        /*
         * Use getTimeInMillis() method to get the Calendar's time value in
         * milliseconds. This method returns the current time as UTC
         * milliseconds from the epoch
         */
        long miliSecondForDate1 = calendar1.getTimeInMillis();
        long miliSecondForDate2 = calendar2.getTimeInMillis();
        // Calculate the difference in millisecond between two dates
        long diffInMilis = miliSecondForDate2 - miliSecondForDate1;
        /*
         * Now we have difference between two date in form of millsecond we can
         * easily convert it Minute / Hour / Days by dividing the difference
         * with appropriate value. 1 Second : 1000 milisecond 1 Hour : 60 * 1000
         * millisecond 1 Day : 24 * 60 * 1000 milisecond
         */
        long diffInDays = diffInMilis / (24 * 60 * 60 * 1000);
        return "" + diffInDays ;

    }
}
  • And honestly: this is a pretty terrible and overly specific way of solving the underlying problem. – GhostCat Aug 13 '19 at 11:00
  • @Zun There is nothing wrong about A) figuring ... "no such question exists" to then B) ask ... and provide a self answer. The **real** problem here is the insufficient quality of the question itself. And yes, the low quality of the answer doesn't help changing the mind of this reader. – GhostCat Aug 13 '19 at 11:01
  • This is not a robust solution. The number of days between 2 dates does not equal the number of milliseconds between those dates divided by 24 * 60 * 60 * 1000. This ignores leap seconds and a whole host of other abnormalities. – cameron1024 Aug 13 '19 at 11:04
  • https://stackoverflow.com/questions/6841333/why-is-subtracting-these-two-times-in-1927-giving-a-strange-result This question, answered by the one and only Jon Skeet, might illustrate the issues here. – cameron1024 Aug 13 '19 at 11:06