当前位置: 首页 > 面试题库 >

Java:自定义向当前日期添加1个月

南宫喜
2023-03-14
问题内容

我已经看过了,基本上我已经发现Calendar对象可以使用以下类似方法将1个月添加到指定的日期中:

Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH, 1);

尽管我不喜欢它在日期为30或31时的行为。如果我将1个月添加到01/31/2012,输出将变为02/29/2012。当我再增加1个月时,它将变为03/29/2012。

无论如何,我是否可以强制2012年2月29日自动变为2012年3月1日?

基本上这就是我想发生的事情:

默认日期:01/31/2012

添加1个月:2012年3月1日

再增加1个月:2012年3月31日


问题答案:

您需要的是一些隐式知识,即如果开始日期是该月的最后一天,并且您加上1个月,则结果应该是下个月的最后一天。即属性“月的最后一天”应该是粘性的。

这在Java中不是直接可用的Calendar,但是一种可能的解决方案是Calendar.getActualMaximum(Calendar.DAY_OF_MONTH)在增加月份之后使用重置日期。

Calendar cal = ...;
cal.add(Calendar.MONTH,1);
cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DAY_OF_MONTH));

您甚至可以子类化GregorianCalendar并添加一个方法

public Calendar endOfNextMonth() { ... }

封装操作。



 类似资料:
  • 您好,我对java.sql.Date的结果有问题。这是我的代码,从当前日期开始添加1周 如果当前日期是2016-02-27,那么我的MySQL中的结果是2016-03-05。但是,如果我想从当前日期开始添加1个月(对我来说总是31天),请使用此行代码 它应该是2016-03-28,但在我的MySQL中,结果是2016-02-05。任何人都可以帮助我这个结果有什么问题??

  • 问题内容: 我已经进行了所有设置,将当前日期存储到Java中的变量中。我要弄清楚的是如何存储当前日期之后1年的日期。 这是我当前的日期: 因此,例如,如果今天是今天,它将存储2/18/2013。我正在尝试存储日期2/18/2014。我将如何去做呢? 问题答案: 如果您不想拖动外部库,只需使用 请注意,如果日期是,并且您添加了1年,则将获得

  • 搜索很好,它在工作,我正在过滤的交易类型(出售或出租)和房间数量在每个房地产。 但是我的JSON响应缺少很多字段,包括ACF。例如:{ “id”:149,“post_author”:“2”,“post_date”:“2016-03-03 23:53:39”,“post_date_gmt”:“2016-03-03 23:53:39”,“post_content”:“”post_title“:”opo

  • 我正在使用JavaFX开发一个日历应用程序。约会的日期通过DatePicker添加到数据库中。约会应从数据库中检索并显示在三个datepicker皮肤中。 我希望datepicker皮肤显示多个选定的日子,显示每个月中各自日期/日子的所有约会。 下面的代码实现了在datepicker中显示几天的约会,但这没有多大帮助,因为datepicker下拉菜单在选择后会关闭。 我已经做了很多谷歌搜索,但一直

  • 问题内容: 我要两个约会。1)当前日期为MM / dd / yy格式2)修改日期为当前日期后五个工作日(星期一至星期五),并且应为MMM dd,yyyy格式。 因此,如果我的当前时间是6月9日,那么currentDate应该是2014年6月9日,而ModifyDate应该是2014年6月13日。 这该怎么做? 问题答案: 这将增加工作日(周一至周五),并以所需格式显示日期。 2020年7月6日更新

  • 问题内容: 我有一个当前的Date对象,需要使用JavaScript Date对象将其增加一天。我有以下代码: 如何添加一天? 我已将+1添加到,但不会显示“”的“星期日” ,这是我希望发生的情况。 问题答案: 要将一天添加到日期对象: