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

无法将天数添加到日历

顾文昌
2023-03-14
问题内容

我正在尝试写一些东西,让某人可以将有声读物上课,并且应该将到期日定为14天。我的班级有一个toString()方法,该方法应打印出到期日,但无论如何始终打印出到期日是3/5。

public String toString() // Prints specs of a Book object
{
    String str = "\nThe specs of this audiobook are: ";
    str += "\n\t Title: " + title;
    str += "\n\t Narrator: " + narrator;
    str += "\n\t Year: " + year;
    str += "\n\t Due Date: " + (getReturnDate().MONTH + 1) + "/" + getReturnDate().DATE;
    return str;
}
public Calendar getReturnDate() // Makes return date 14 days after today
{
    Calendar duedate = Calendar.getInstance();
    duedate.add(Calendar.DAY_OF_YEAR, 14);
    return duedate;
}

问题答案:
getReturnDate().MONTH

没有按照你的意思去做。它的值是Calendar.MONTH静态常量的值,我想是2(实际上,您可以在源代码中看到它)。

我想你是说

getReturnDate().get(Calendar.MONTH)

此外,您不应该拨打getReturnDate()两次电话:如果您拨打两次电话,日期可能会不一致。调用一次,将其分配给一个字段:

Calendar returnDate = getReturnDate();
// ...
str += "Due date " + (returnDate.get(Calendar.MONTH) + 1) + "/" + returnDate.get(Calendar.DATE);

但实际上,更好的解决方案是不使用这些旧的,有效弃用的API。

使用LocalDate

LocalDate returnDate = LocalDate.now().plusDays(14);

然后访问returnDate.getMonthValue()returnDate.getDayOfMonth()字段。



 类似资料:
  • 问题内容: 我是这个网站的新手,我才刚刚开始学习Java。我正在尝试将几天添加到GregorianCalendar中,但是它不起作用。在这里…(忽略顶部的块),其底部的添加日期很烦人。 感谢您阅读本文!我欢迎任何反馈… 问题答案: 这里有太多代码。用户互动过多。 从一种简单的方法开始做一件事,然后在正确的方法上解决。 这是您可能的操作方式: 一旦测试并证明了此方法,您就可以让其余的代码调用它。 更

  • 我试图向mongodb发送一个数组,但是返回一个空的,而且mongodb文档中从来没有出现biddingGroup字段。我看过堆栈文章,并看到了关于模式的建议。我试过了 应用程序JS 感谢任何帮助。

  • 我想为谷歌云功能启用cors。我的index.js是: 和我的package.json: 基于这个链接,我尝试手动添加头,但没有成功。我也试过这个解决方案,但没有成功。 我做错了什么?

  • 为什么我在今天的基础上加上30天就得到了今天的30天,而当我加上20天就得到了今天的30天?? 这是一个样本 “这是控制台”

  • 问题内容: 我在MySQL中有一张表。将表中的当前日期值添加为2天的sql语句看起来像什么? 这会增加一秒钟的值,我不想更新时间,我想增加两天? 问题答案: 假设您的字段是一种类型(或相似类型): 使用您提供的示例,它看起来可能像这样: 这种方法也适用。

  • 我正在从ElasticSearchV2.1迁移到V6.1.1,而在V2.1中,我对dob的映射工作良好,现在却抛出了一个错误。 我现在得到以下错误: