1

2 つの関数を使用して日付値を比較し、開始日終了日より大きいかどうかを確認します。

最初の関数は、文字列値を取り込み、その文字列値を使用して を初期化するために使用されますCalendar

private int getFromCalendar(String strDate,int field)
    {
        int result = -1;
        try
        {
            SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");// this is your date format "12/24/2013" = "MM/dd/yyy"
            java.util.Date date = formatter.parse(strDate);//convert to date
            Calendar cal = Calendar.getInstance();// get calendar instance
            cal.setTime(date);//set the calendar date to your date
            result = cal.get(field); // get the required field  
            return result;//return the result.
        }
        catch (ParseException e)
        {
            e.printStackTrace();
        }
        return result;
    }

2 番目の関数は、startDate と endDate を比較するために使用されます (どちらもボタンです)。

public void compareDates(String startDate, String endDate){
            Calendar startCheckDate = Calendar.getInstance();
            int startmm = getFromCalendar(monitoringDate.getText().toString(), Calendar.MONTH);
            int startyy = getFromCalendar(monitoringDate.getText().toString(), Calendar.YEAR);
            int startdd = getFromCalendar(monitoringDate.getText().toString(), Calendar.DAY_OF_MONTH);
            startCheckDate.set(startyy, startmm, startdd);
            Calendar endCheckDate = Calendar.getInstance();
            int endmm = getFromCalendar(monitoringEndDate.getText().toString(), Calendar.MONTH);
            int endyy = getFromCalendar(monitoringEndDate.getText().toString(), Calendar.YEAR);
            int enddd = getFromCalendar(monitoringEndDate.getText().toString(), Calendar.DAY_OF_MONTH); 
            endCheckDate.set(endyy, endmm, enddd);

            if(endCheckDate.after(startCheckDate)){
                Toast.makeText(getSherlockActivity(), "End date cannot be smaller than start date", Toast.LENGTH_SHORT).show();
            }

        }

何らかの理由でcompareDates機能がまったく機能しません。助けてください

4

3 に答える 3