如何判断给定日期是否早于一个月前?最快的算法是什么?我必须考虑到不同的月份有不同的天数。
最佳答案
已更新至 Java 8
类(class)LocalDate类可以使用:
LocalDate aDate = LocalDate.parse("2017-01-01");
return aDate.isBefore( LocalDate.now().minusMonths(1));
对于以前的版本,Calendar 类可以工作。
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
关于java - 日期早于一个月前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2075267/