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);
}
});