首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何识别6个月前的日期

如何识别6个月前的日期
EN

Stack Overflow用户
提问于 2012-02-27 06:22:37
回答 5查看 17.4K关注 0票数 9

我需要确定六个月前的日期。例如:

代码语言:javascript
复制
Feb-27, 2012(Today) - It is Feb and we don't count incomplete month, false
Feb-01, 2012 - Still Feb so don't count too, false
Jan-01, 2011 - Completed, false
Dec-01, 2011 - Completed, false
Nov-01, 2011 - Completed, false
Oct-01, 2011 - Completed, false
Sep-01, 2011 - Completed, false
Aug-01, 2011 - Completed, false
Jul-01, 2011 - Already pass 6 complete months, true

它应该在未来的任何日期起作用。

我想到了当前的日期减去30*6=180日,但这是不准确的。

它需要准确,因为,例如,如果我们确定2011年7月是有效的,那么我们将保留该月份的所有数据。

谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-02-27 06:41:59

如果您可以使用JodaTime,下面是计算±6个月的代码:

代码语言:javascript
复制
    import org.joda.time.DateTime;
    import org.joda.time.Months;
    ....
    ....
    DateTime now = new DateTime();
    DateTime then = new DateTime().withDate(2011, 8, 1);
    if(Math.abs(Months.monthsBetween(now, then).getMonths()) > 6){
        System.out.println("6 mo apart!");
        //your logic goes here
    }
票数 7
EN

Stack Overflow用户

发布于 2012-02-27 06:38:39

我会尝试这个简单的逻辑来完成这项工作。

代码语言:javascript
复制
Calendar cal = Calendar.getInstance();  //Get current date/month i.e 27 Feb, 2012
cal.add(Calendar.MONTH, -6);   //Go to date, 6 months ago 27 July, 2011
cal.set(Calendar.DAY_OF_MONTH, 1); //set date, to make it 1 July, 2011

希望这能有所帮助。

票数 24
EN

Stack Overflow用户

发布于 2012-02-27 06:42:09

根据您的时间和日期需要使用像尤达-时间这样的库。我想你可以这样做:

新LocalDate().minusMonths(7).withDayOfMonth(1)

(7个月用于支付任何部分月.留下了一个月前的边缘.但呃:) )

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9460854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档