2012-06-19 4 views
2

У меня есть форма для бронирования, в которой пользователь должен ввести свои данные вместе с датой. пользователь не может отправить дату, которая находится в течение 24 часов. бронирование должно быть сделано через 24 часа.андроид сравнить 2 даты, чтобы найти разницу

Как я могу реализовать это ?. Я получил текущую дату и время.

так, если текущая дата и время 19062012 1324 бронирование не может быть сделано до 20062012 1324

, что я пытался сделать это:

long mdates = (long) (Long.parseLong(date.getText().toString())); 
    long mprefered= (long) (Long.parseLong(date2.getText().toString())); 
     long sub = mprefered - mdates; 

    if (preferedDateEditText.getText().toString() != null 
      && !preferedDateEditText.getText().toString() 
        .equalsIgnoreCase("") && sub>100000000) { 
     emailBody += "Prefered date & Time:" 
       + preferedDateEditText.getText().toString().trim() 
       + "\n sub="+sub; 
    } else { 
     errorMessage += "A booking cannot be made within 24 hours."; 
    } 

это работает, однако если Предпочтительнее дата 01072012 1324, то он не будет принимать как за 24 часа до любая помощь будет оценена

ответ

1
Date date = new Date(long); 
if (date.before(other_date)) { 
... 
+0

Я имел в виду «долго» это свидание() в миллисекундах или другой даты объекта – Gorets

1

Используйте SimpleDateFormat разобрать дату ул кольца в объекты Date. Затем вы можете использовать эти объекты для сравнения.

+0

Смотрите этот вопрос подробнее http://stackoverflow.com/questions/3960661/android-difference-between-two-dates -in-seconds – pilotcam

2

Дата date1 = новая дата (в миллисекундах);

Дата дата2 = новая Дата (миллис);

 if(date1.compareTo(date2)>0) 
     { 

     } 
     else if(date1.compareTo(date2)<0) 
     { 

     } 
     else 
     { 
      //both are equal 
     } 
+0

что такое миллис? –

+0

- это время, равное дате –

0

Вы можете использовать Дату и DateFormat для рагез ваших строк даты до даты объектов, а затем использовать Date.after (Дата) функцию в Date.before (Date) и для сравнения.

public checkTimePassed(String datestring){ 
     DateFormat dfm = new SimpleDateFormat("ddMMyyyy hm"); 
     Date preferred_date = dfm.parse(datestring); 
     Date now = new Date(); 
     double minimum_time = preferred_date.getTime() + (24 * 60 * 60); 
     return now.getTime() > minimum_time; 
    } 
Смежные вопросы