Reputation: 99
I am doing android app. I facing some problem to check current date and future date. Here my code
private void isValidate(String dates) {
calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_MONTH);
int month = calendar.get(Calendar.MONTH);
int year = calendar.get(Calendar.YEAR);
Log.d("profile getCurrent Date ", "" + calendar.getTime());
String currentDate = year + "-" + month + "-" + day;
SimpleDateFormat currentFromat = new SimpleDateFormat(currentDate);
SimpleDateFormat selectedFormat = new SimpleDateFormat(dates);
Log.d("profile dates compare", currentDate + " " + dates);
java.util.Date current, selected;
try {
current = currentFromat.parse(currentDate);
selected = selectedFormat.parse(dates);
int diff = current.compareTo(selected);
if (diff > 0) {
Log.d("profile date status", "Future " + diff);
} else {
Log.d("profile date status", "Past " + diff);
}
if (selected.compareTo(current) > 0) {
Log.d("profile date status", "Future ");
}
if (selected.compareTo(current) < 0) {
Log.d("profile date status ", "Past ");
}
if (selected.compareTo(current) == 0) {
Log.d("profile date status ", "Equal ");
}
if (selected.after(current)) {
Log.d("profile date after", "Future ");
}
if (selected.after(current)) {
Log.d("profile date before ", "Past ");
}
if (selected.after(current)) {
Log.d("profile date equals ", "Equal ");
}
Log.d("profile date format ", currentFromat.format(current) + " "
+ selectedFormat.format(selected));
} catch (ParseException e) {
// TODO Auto-generated catch block
Log.e("profile date error ", "" + e);
}
}
In the isValidate(String dates)
am passing 2015-07-23
in this format. But i am unable to get the difference between selected date and the current date.
Upvotes: 1
Views: 4138
Reputation: 603
Try this:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(YOUR DATE STRING);
Calendar now= Calendar.getInstance();
Calendar yourDate = Calendar.getInstance();
yourDate.setTimeMilliseconds(date.getTime);
now.before(yourDate);
To get the real time difference you can do:
long diff = now.getTimeMilliseconds() - yourdate.getMilliseconds();
Upvotes: 3