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

下个月的第一天使用Java Joda-Time

郑功
2023-03-14
问题内容

您将如何用Joda-Time中的org.joda.time包重写下面的方法,该方法返回下个月的第一天?

public static Date firstDayOfNextMonth() {
    Calendar nowCal = Calendar.getInstance();
    int month = nowCal.get(Calendar.MONTH) + 1;
    int year = nowCal.get(Calendar.YEAR);

    Calendar cal = Calendar.getInstance();
    cal.clear();
    cal.set(Calendar.YEAR, year);
    cal.set(Calendar.MONTH, month);
    cal.set(Calendar.DAY_OF_MONTH, 1);
    Date dueDate = new Date(cal.getTimeInMillis());

    return dueDate;
}

问题答案:
   LocalDate today = new LocalDate();
   LocalDate d1 = today.plusMonths(1).withDayOfMonth(1);

变得更容易和更清洁,不是吗?:-)

更新:如果要返回日期:

return new Date(d1.toDateTimeAtStartOfDay().getMillis());

但我强烈建议您避免将纯DATE类型(即日历中的一天,没有时间信息)与DATETIME类型混合使用,特别是与“物理”日期时间类型混合使用,就像可怕的那样java.util.Date。这有点像将from转换为integer和float类型,您必须小心。



 类似资料:
  • 所以我需要制作一个基本日历,显示特定年份和月份的日历(用户应该能够根据文本输入选择任何月份和任何年份)。 到目前为止,我已经成功地创建了一个日历obj,使用扫描仪从用户那里获取所需的月份和年份,但我的问题是,我如何找出一个月的第一天是什么?在上面的例子中,今天是星期六。我构建它的逻辑是,如果我知道第一天,我可以创建一个字符串[][]数组,通过循环从第一天开始的月份,开始显示相关日期的日期。我用扫描

  • 是否可以使用以下公式计算月的第三个最后一天: 我想要的结果的一些例子: 1月28日 2月25日/26日 3月28日 4月27日 5月29日 6月27日 7月28日 8月28日 9月27日 10月28日 11月27日 十二月二十八日

  • 我有一个LocalDate,需要得到一个月的第一天和最后一天。我该怎么做? 我需要获取LocalDate格式的和。 使用Three-Ten LocalDate类。

  • 问题内容: 我正在尝试选择当前日期前三个月的每月的第一天。 因此,例如,如果当前日期是:“ 2015-11-08”,我的结果将是:“ 2015-08-01” 我希望这是yyyy-mm-dd格式。 我从一开始就尝试过,但是没有运气: 我已经尝试了很多事情,但似乎无法破解,任何建议或帮助都将不胜感激。先感谢您 问题答案: 逻辑很简单: 减去当月的日期减去日期后的1天 减去三个月 在SQL Server

  • 问题内容: 寻找一种获取日期格式为“11/1/2009”的日期的方法,这将是下个月的第一个星期日。我想在10月的第一个星期日之后运行此查询,以获取下个月的第一个星期日。用T-SQL查询完成此操作的最佳方法是什么? 谢谢 问题答案: 试试这个: 编辑说明: 下个月的第一个月由以下表达式给出: 或方式:将1更改为2,可以将其修改为从现在起两个月的第一个月: 编辑:作为对@NissanFan和@Anth

  • 问题内容: 我正在设法迅速获得每月的第一天和最后一天。 到目前为止,我有以下内容: 但是我不确定如何获得最后的约会。我是否缺少内置方法?显然,它必须考虑leap年等。 问题答案: 您只需使用以下命令即可获得每月的第一天 要获得该月的最后一天,请添加一个月并减去一天: 或者,使用为您提供开始时间和月份长度的方法: 对于月份的最后一天的日期,请加上月份的长度减去一秒: 为Swift5更新: