End-date greater than start-date validation android

19,105

Solution 1

SimpleDateFormat dfDate  = new SimpleDateFormat("yyyy-MM-dd");
public static boolean checkDates("2012-07-12", "2012-06-12)"    {
    boolean b = false;
    try {
        if(dfDate.parse(d1).before(dfDate.parse(d2)))
        {
            b = true;//If start date is before end date
        }
        else if(dfDate.parse(d1).equals(dfDate.parse(d2)))
        {
            b = true;//If two dates are equal
        }
        else
        {
            b = false; //If start date is after the end date
        }
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return b;
}

Solution 2

Try this function.

public static boolean isDateAfter(String startDate,String endDate)
    {
        try
        {
            String myFormatString = "yyyy-M-dd"; // for example
            SimpleDateFormat df = new SimpleDateFormat(myFormatString);
            Date date1 = df.parse(endDate));
            Date startingDate = df.parse(startDate);

            if (date1.after(startingDate))
                return true;
            else
                return false;
        }
        catch (Exception e) 
        {

            return false;
        }
    }

It return true if enddate is after start date.

Solution 3

public static boolean CheckDates(String d1, String d2){
    SimpleDateFormat dfDate  = new SimpleDateFormat("yyyy-MM-dd");
    boolean b = false;
    try {
        if(dfDate.parse(d1).before(dfDate.parse(d2)))
        {
            b = true;//If start date is before end date
        }
        else if(dfDate.parse(d1).equals(dfDate.parse(d2)))
        {
            b = true;//If two dates are equal
        }
        else
        {
            b = false; //If start date is after the end date
        }
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return b;
}
Share:
19,105
Ricardo Filipe
Author by

Ricardo Filipe

Updated on June 06, 2022

Comments

  • Ricardo Filipe
    Ricardo Filipe almost 2 years

    I have two EditText's. One with start date and other with end date. I need to make a validation and check if end date is greater than start-date. I don't know how i can do this.

    In my code i make the difference bettween two dates in days, and now i also need to check if end date is greater than start-date

    Here is my code:

                 //EditText with string of start date
                dataInicio = (EditText)findViewById(R.id.ses_dpDataIni);
                 //EditText with string of end date
        dataFim = (EditText)findViewById(R.id.ses_dpDataFim);
    
                 //Convert String to calendar to check the difference between two dates..
        try{
        dateInic = dataInicio.getText().toString();
        dateFim = dataFim.getText().toString();
    
        calInic=Calendar.getInstance();
        calFim = Calendar.getInstance();
        calInic.setTime(form.parse(dateInic));
        calFim.setTime(form.parse(dateFim));
        }
         catch (ParseException e) { 
             e.printStackTrace(); 
        } 
        Log.w(SessaoQuotaEdit.class.getName(),"DIFERENCA DE DIAS"  +daysBetween(calInic,calFim));
        tvDiasQuotas = (TextView)findViewById(R.id.ses_tvNumDiasQuota);
        tvDiasQuotas.setText("NUMBER OF DAYS: " +daysBetween(calInic,calFim));
    
                //CHECK IS END-DATE IS GREATER THAN START-DATE
                 .............
                 .............
    

    Can you help me? Thanks :)