I have a date picker through which I am setting up a date in string ie mDate. Now to set up time I want to check if current date and the mDate is same if they are same I want to set minTime to TimePicker dialog and if they are not same min time should not be set to time.
If mDate is empty still time should show all time.
mEditTxt_Time.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Date date = null;
try {
if(!mDate.equals("")) {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
date = format.parse(mDate);
}
Calendar compareDate = Calendar.getInstance();
compareDate.getTime();
Calendar now = Calendar.getInstance();
TimePickerDialog tpd = TimePickerDialog.newInstance(
PostShippingFragment.this,
now.get(Calendar.HOUR_OF_DAY),
now.get(Calendar.MINUTE),
true
);
if(date!=null) {
if (date.compareTo(compareDate.getTime())) {
tpd.setMinTime(now.get(Calendar.HOUR_OF_DAY), now.get(Calendar.MINUTE), now.get(Calendar.SECOND));
}
}
else {
tpd.setVersion(TimePickerDialog.Version.VERSION_2);
tpd.setAccentColor(ContextCompat.getColor(getActivity(), R.color.colorAccent));
tpd.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialogInterface) {
Log.d("TimePicker", "Dialog was cancelled");
}
});
tpd.show(getFragmentManager(), "Timepickerdialog");
}
}
catch (ParseException e)
{
Log.e("exception",e.toString());
}
}
});
I tried this but I am not able to do the comparison.
Please help. Thank you.
You can use compareTo()
method of Date.
It will return an integer value,
So, you need to modify your if condition
as below, if you want to check both date are same or not.
if (date.compareTo(compareDate.getTime()) == 0) {
Use any of the following method to compare the dates
Method 1
Method 2
if(date1.compareTo(date2)>0){
Log.d("Date", "Date1 is after Date2");
}else if(date1.compareTo(date2)<0){
Log.d("Date", "Date1 is before Date2");
}else{
Log.d("Date", "Date1 is equal to Date2");
}
Method 3
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(date1);
cal2.setTime(date2);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.