2014-02-19 8 views
0

У меня есть две функции, в которых он позволяет пользователю установить конкретную дату. Это дата начала и дата окончания. Теперь мне нужно сравнить эти две переменные, потому что дата начала не должна быть больше конечной даты. Вот мой код в андроиде. Любая помощь поможет. Благодарю.Сравнить Дата начала и окончания Android

private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() 
{ 
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) 
    { 
     yr = year; 
     month = monthOfYear; 
     day = dayOfMonth; 
     Date.setText((month + 1) + "/" + day + "/" + yr); 
    } 
}; 

private DatePickerDialog.OnDateSetListener mDateSetListener1 = new DatePickerDialog.OnDateSetListener() 
{ 
    public void onDateSet(DatePicker view1, int year1, int monthOfYear1, int dayOfMonth1) 
    { 
     yr = year1; 
     month = monthOfYear1; 
     day = dayOfMonth1; 

     DateEnd.setText((month + 1) + "/" + day + "/" + yr); 
    } 
}; 
+1

Избегайте повторяющихся вопросов .... Смотрите этот http://stackoverflow.com/a/15925576/1765530 – appukrb

ответ

0

Вы можете проверить это, выполнив следующий код.

if (mDateSetListener.before(mDateSetListener1) || Code.DueDate.equals(Code.AssignDate)) { 
    AlertDialog.Builder alertDialogBuilderDate = new AlertDialog.Builder(Assignment_Create_Ext_DB.this); 
    alertDialogBuilderDate.setTitle("Date assigning issue"); 
    alertDialogBuilderDate 
    .setMessage("Due date can not be equal or less then the Assign date") 
    .setCancelable(false) 
    .setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
       dialog.cancel(); 
      } 
     }); 
    alertDialogBuilderDate.show(); 
} 
+0

как указано 'mDateSetListener.before (mDateSetListener1)' вы также можете использовать 'mDateSetListener.after (mDateSetListener1) ', если вы хотите установить дату после. – InnocentKiller

0

Ниже мой код, чтобы сравнить две даты,

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); 

String startDate = tvStartDate.getText().toString().trim(); 
String endDate = tvEndDate.getText().toString().trim(); 

startDate = startDate.substring(startDate.indexOf(":") + 1); 
endDate = endDate.substring(endDate.indexOf(":") + 1); 

Date startDat = sdf.parse(startDate); 
Date endDat = sdf.parse(endDate); 

if (startDat.compareTo(endDat) <= 0) 
{ 
    // ok 
} 
else 
{ 
    Toast.makeText(getApplicationContext(), "Start date must be lesser than or equal to End Date", Toast.LENGTH_SHORT).show(); 
} 
0

Просто преобразовать строку даты даты объекта как:

try{  
       SimpleDateFormat curFormater = new SimpleDateFormat(dateFormat.getValue(),locale); 
       Date d1 = curFormater.parse(dateStr); 
Date d2 = curFormater.parse(dateStr2); 

//Now just compare the two dates as 

if(d1.before(d2)){ 
} 
else{ 
} 
      }catch (Exception e) { 
       LogHandler.error(tag, "getDataFormate", e); 
       return null; 
      } 

Позвольте мне знать, если это полезно.

0
boolean compareTime(int startDay, int startMonth, int startYear, 
     int monthDay, int month, int year) { 
    Time timeNow = new Time(); 
    Time timeSelected = new Time(); 

    timeNow.set(startDay, startMonth, startYear); 

    timeSelected.set(monthDay, month, year); 

    long millisNow = timeNow.toMillis(true); 
    long millisSelected = timeSelected.toMillis(true); 

    long diff = millisSelected - millisNow; 
    long diffHours = diff/(60 * 60 * 1000); 

    Log.i(TAG, "diffHours = " + diffHours); 

    if (diffHours <= 0) { 
     return true; 
    } else { 
     return false; 
    } 
} 
Смежные вопросы