Дата ранее, чем месяц назад

Как проверить, является ли данная дата ранее, чем месяц назад? Каков самый быстрый алгоритм? Я должен принять во внимание, что различные месяцы имеют различные количества дней.

11
задан Michał Ziober 15 January 2010 в 22:45
поделиться

2 ответа

Обновлено Java 8

Класс Класс LocalDate можно использовать:

LocalDate aDate = LocalDate.parse("2017-01-01");
return aDate.isBefore( LocalDate.now().minusMonths(1));

Для предыдущих версий класс календаря будет работать.

Calendar calendar = Calendar.getInstance();
calendar.add( Calendar.MONTH ,  -1 );
return aDate.compareTo( calendar.getTime() ) < 0;

Образец кода:

import static java.lang.System.out;
import java.time.LocalDate;

public class Sample {
    public static void main( String [] args ) {
        LocalDate aMonthAgo = LocalDate.now().minusMonths(1);
        out.println( LocalDate.parse("2009-12-16").isBefore(aMonthAgo));
        out.println( LocalDate.now().isBefore(aMonthAgo));
        out.println( LocalDate.parse("2017-12-24").isBefore(aMonthAgo));
    }
}

Отпечатки

true
false
false
24
ответ дан 3 December 2019 в 02:52
поделиться

Использование Joda Time :

DateTime dt1 = new DateTime(); //Now
DateTime dt2 = new DateTime(2009,9,1,0,0,0,0); //Other date
if (dt1.plusMonths(-1) > dt2) {
    //Date is earlier than a month ago
}
4
ответ дан 3 December 2019 в 02:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: