When user select date between from and to date. how to calculate number of days in 3rd Edittext in android? Following my code for datepicker. I have searched so many quotes in stackoverflow but unable to get it. Please add necessary code and resolve it as soon as possible. After adding the code which is mentioned on stackoverflow, my app crashes frequently.
public class ResourceActivity extends AppCompatActivity {
EditText date,dateto,days;
DatePickerDialog datePickerDialog;
Button save_btn;
Calendar c1,c2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.resourcedetails);
date = findViewById (R.id.date);
dateto = findViewById (R.id.dateto);
days = findViewById (R.id.dayst);
save_btn = findViewById (R.id.save_btn);
save_btn.setOnClickListener (new View.OnClickListener ( ) {
@Override
public void onClick(View view) {
loadsave();
}
});
date.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// calender class's instance and get current date , month and year from calender
c1 = Calendar.getInstance();
int mYear = c1.get(Calendar.YEAR); // current year
int mMonth = c1.get(Calendar.MONTH); // current month
int mDay = c1.get(Calendar.DAY_OF_MONTH); // current day
// date picker dialog
datePickerDialog = new DatePickerDialog(ResourceActivity.this,new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
// set day of month , month and year value in the edit text
String[] MONTHS = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
String mon=MONTHS[monthOfYear];
date.setText(dayOfMonth + "-"
+ (mon) + "-" + year);
}
}, mYear, mMonth, mDay);
datePickerDialog.show();
}
});
dateto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// calender class's instance and get current date , month and year from calender
c2 = Calendar.getInstance();
int mYear = c2.get(Calendar.YEAR); // current year
int mMonth = c2.get(Calendar.MONTH); // current month
int mDay = c2.get(Calendar.DAY_OF_MONTH); // current day
// date picker dialog
datePickerDialog = new DatePickerDialog(ResourceActivity.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
// set day of month , month and year value in the edit text
String[] MONTHS = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
String mon=MONTHS[monthOfYear];
dateto.setText(dayOfMonth + "-" + (mon) + "-" + year);
}
}, mYear, mMonth, mDay);
datePickerDialog.show();
}
});
try {
String d1 = date.getText ().toString ();
String d2 = dateto.getText ().toString ();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-mon-yyyy");
Date date1 = simpleDateFormat.parse(d1);
Date date2 = simpleDateFormat.parse(d2);
long difference = Math.abs(date1.getTime() - date2.getTime());
long difftDays = difference / (24 * 60 * 60 * 1000);
Log.i("Testing","days" +difftDays);
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}