我们如何检查当前系统日期是否为1个月后

时间:2011-05-22 06:25:12

标签: java

  

可能重复:
  How to subtract 45 days from from the current sysdate

您好我使用

获取当前系统日期
Java.util.Date date = new java.util.Date();

如何检查我的日期是否在日期前一个月

例如,如果今天是2011年5月22日

如何查看日期是否为2011年4月22日?

4 个答案:

答案 0 :(得分:2)

您可以使用JodaTime。它的DateTime类有一个minusMonth - 方法。使用它来获取一个月前的日期然后进行比较。有关更多详细信息,请参阅Joda-API。

答案 1 :(得分:1)

Calendar cal1 = Calendar.getInstance();
cal1.setTime(theGivenDate);

Calendar cal2 = Calendar.getInstance();
cal2.add(Calendar.MONTH, -1);

if ( (cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR)) &&
     (cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH)) &&
     (cal1.get(Calendar.DAY_OF_MONTH) == cal2.get(Calendar.DAY_OF_MONTH)) ) {
  System.out.println("Given date " 
    + theGivenDate + " is exactly one month ago from today");
}

答案 2 :(得分:0)

你可以使用Joda DateTime [http://joda-time.sourceforge.net/apidocs/org/joda/time/DateTime.html]。

DateTime有一个方法minusMonths(int months),然后你可以将Joda DateTime转换为java.util.Date

答案 3 :(得分:0)

根据您对“月历”月份的定义,您是否知道许多日期从未成为“今天前一个月”?例如,由于六月只有30天,因此5月31日的情况永远不会成立。

您可能希望将您的定义更改为银行常用的定义,例如计算利息和存款条款:一个月被视为正好30天,与日历日期无关。所以“5月31日之后的一个月”将是6月30日。