2013-10-14 3 views
-1

Целью программы, которую я делаю, является проверка дат, и если дата прошла, она должна показывать следующую дату.Проверить переменную, получить следующую переменную, проверить переменную и т. Д.

Факс: Факс: Факс:

Например, сегодня 14.04.2013. Следующий эпизод «Как я встретил вашу маму» сегодня, а следующий - 11/11/2013.

Я хочу запрограммировать дату 14/10/2013, но завтра это должно показать 11/11/2013. Вот что у меня есть:

public class CheckSeries { 
    public static void main (String[] args){ 
     SimpleDateFormat d = new SimpleDateFormat("dd/MM/yyyy"); 
     Date today = new Date(); 
     System.out.println(d.format(today)); 

     try {  // Here is where I add the times. I know it's not the most productive way, but one step at a time 
      Date d0 = d.parse("14/10/2013"); 
      Date d1 = d.parse("11/11/2013"); 
      Date etc = d.parse("etc/etc/etc"); 

    } 
} 

Итак, мне нужно, чтобы проверить d0, если она перед сегодня он должен проверить d1, то d2 и т.д. и т.п. Но если говорить о том, d1 после сегодня его должен просто показать d1 в JFrame (который я знаю, как это сделать, плохо добавить Jframe позже) Но я не знаю, как это сделать. (Я думаю).

+0

Аналогичный вопрос: Посмотрите на это: http://stackoverflow.com/questions/2592501/compare-dates-in-java – Dezigo

+0

@Zahand вы можете сохранить все переменные dx (d0, d1 ..) в списке и перебрать каждый из них, вызывая today.compareTo (dx), первый dx, который дает -1 или 0, является правильным следующим днем. –

+0

Чтобы не опережать себя, но вы, вероятно, должны загружать даты из внешнего файла, анализировать их, а затем добавлять в список и удалять элементы из списка, когда это необходимо. – Troubleshoot

ответ

0

Почему бы не перебрать даты по сравнению с текущей датой. Вы можете использовать myDate.after(now), чтобы определить, будет ли в будущем myDate.

Date now = new Date() //current timestamp

и перекручивание:

for (Date d : Arrays.asList(d0, d1, etc)) { //comparing here} 
Смежные вопросы