user1784588
user1784588

Reputation: 99

How to check present and future date in android

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

Answers (1)

R. Adang
R. Adang

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

Related Questions