0

I am using Date Converter in my new Java project where I am calculating the difference between two days in order to convert between two days. Everything else is working fine, but I got stucked in a problem:

private long daysBetween(Calendar startDate, Calendar endDate) {
    Calendar date = (Calendar) startDate.clone();
    long daysBetween = 0;
    while (date.before(endDate)) {
        date.add(Calendar.DAY_OF_MONTH, 1);
        daysBetween++;
    }
    Log.e("Days Between check",daysBetween + "This is the days difference");
    return daysBetween;
}

This is my function that calculates days between two dates. The dates are selected from spinner and I logged those value to check them. It has given true output until 2018/03/31 and 2018/4/1 yields same number of days from that function.

This is my other function (in case needed):

convertToNepali.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        Calendar currentEngDate = new GregorianCalendar();
        int engYear = startingEngYearForSelection;
        int engMonth = startingEngMonthForSelection;
        int engDay = startingEngDayForSelection;

        if(yearEngSpinner.getSelectedItem()!=null)
        {
            engYear = Integer.parseInt(yearEngSpinner.getSelectedItem().toString());
        }

        if(monthEngSpinner.getSelectedItem()!=null)
        {
            Date date = null;
            Log.e("monthSpinner","I am in month spinner");
            try {
                date = new SimpleDateFormat("MMMM").parse(monthEngSpinner.getSelectedItem().toString());
                Calendar cal = Calendar.getInstance();
                cal.setTime(date);

                engMonth = Integer.parseInt(String.valueOf(cal.get(Calendar.MONTH)+1));

            } catch (ParseException e) {
                e.printStackTrace();
                engMonth = 1;
                Log.e("Error Some Error", e.getMessage());
            }

        }

        if(dayEngSpinner.getSelectedItem()!=null)
        {
            engDay = Integer.parseInt(dayEngSpinner.getSelectedItem().toString());
        }

        currentEngDate.set(engYear, engMonth, engDay);

        Calendar baseEngDate = new GregorianCalendar();

        baseEngDate.set(startingEngYearForSelection, startingEngMonthForSelection, startingEngDayForSelection);

        long totalEngDaysCount = daysBetween(baseEngDate, currentEngDate);

        String textOfNepaliVersion = convertToNepaliFunction(totalEngDaysCount);

        dateConvertedTextView.setText(textOfNepaliVersion);

    }



});
JustABeginner
  • 785
  • 2
  • 11
  • 26
  • 2
    Nice to see another nepali date converter being built. Your question might already have an answer here https://stackoverflow.com/questions/23323792/android-days-between-two-dates – Bishal Nov 14 '18 at 05:33
  • Doesnt work. Same Problem! – JustABeginner Nov 14 '18 at 06:30
  • 1
    Hard to say. [A Minimal, Complete, and Verifiable example](https://stackoverflow.com/help/mcve) would probably help greatly. – Ole V.V. Nov 14 '18 at 09:32

0 Answers0