2013-08-16 2 views
-2

Я работаю с компонентом календаря RichFaces. Я использую Rich Faces 3 и имею два компонента календаря.Как сравнить два разных значения даты в Java?

Как можно сравнить две значения даты таким образом, что одно из этих двух значений может быть выше, чем для другого?

двух значений будет инициализировать таким образом:

Date startDate = new Date(); 

Date endDate = new Date(); 

Теперь мой пользователь может выбрать DateValues ​​в Rich Faces календарь унд выбранные значения будут сохранены в переменных.

Как я могу сравнить эти два значения?

Greetz

+4

Я вниз проголосовали. Перед публикацией этого вопроса вы показали нулевой знак предшествующего исследования. –

+0

Возможный дубликат [Сравнить даты на Java] (http://stackoverflow.com/questions/2592501/compare-dates-in-java) –

ответ

3

Вы можете использовать after и before методы

startDate.before(endDate); 
startDate.after(endDate); 

Как Date инвентарем Comperable<Date>, метод compareTo также работает отлично.

4

Вы проверили документацию? Существуют методы для compareTo(), before(), after() и т. Д. Для сравнения в зависимости от ваших потребностей. Вы также можете использовать метод getTime(), чтобы найти миллисекунды с эпохи каждого раза, затем вы можете манипулировать ими, чтобы найти промежуток времени между временами.

http://docs.oracle.com/javase/6/docs/api/java/util/Date.html

2

Вы можете использовать метод compareTo из Date чтобы делать сравнения

compareTo(Date anotherDate) метод возвращает

значение 0, если аргумент Дата равно этой даты; значение меньше , чем 0, если эта дата предшествует аргументу Date; и значение больше , чем 0, если эта дата находится после аргумента Date.

1

Чтобы сравнить две даты, вы должны использовать CompareTo() Метод:

if(startDate.compareTo(endDate) > 0) 

Этот метод

  1. возврата 0, если даты равны
  2. Вернуть positve значение, если дата после аргумента даты
  3. return the negative valu е если дата до даты аргумента
2

CompareTo (дата Date) является метод Date класса, который сравнивает две даты этот метод:

  • Возвращаемое значение равно 0, если обе даты равны ,

  • Возвращаемое значение больше 0, если Date - после аргумента даты.

  • Возвращаемое значение меньше 0, если Дата предшествует аргументу даты.

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
    Date date1 = sdf.parse("2012-10-31"); 
    Date date2 = sdf.parse("2013-01-21"); 
    
    
    if(date1.compareTo(date2)>0){ 
           System.out.println("Date1 is after Date2"); 
          }else if(date1.compareTo(date2)<0){ 
           System.out.println("Date1 is before Date2"); 
          }else if(date1.compareTo(date2)==0){ 
           System.out.println("Date1 is same as Date2"); 
          }else{ 
           System.out.println("never gets executed"); 
          } 
    
Смежные вопросы