Java 如何在日期中添加数字

Java 如何在日期中添加数字,java,loops,date,if-statement,Java,Loops,Date,If Statement,试图找出如何使用if语句将日期添加到非指定int 试图编写一个用于库系统的程序。其中用户必须输入要签出的项目的类型。(分为新的或旧的)。用户还必须输入结账日期。如果项目被归类为新项目,则到期日为结帐日期后14天。否则,如果不是新物品,则使用期限为21天。如何编写if语句,允许我在用户输入的日期中添加21或14?我尝试使用for循环,但由于没有定义确切的日期,用户可以随意输入日期,我很难获得预期的输出。这是我的Java入门课程,所以可能有一些元素我还没有学会。下面是一些我本以为可以工作的代码,但考

试图找出如何使用if语句将日期添加到非指定int

试图编写一个用于库系统的程序。其中用户必须输入要签出的项目的类型。(分为新的或旧的)。用户还必须输入结账日期。如果项目被归类为新项目,则到期日为结帐日期后14天。否则,如果不是新物品,则使用期限为21天。如何编写if语句,允许我在用户输入的日期中添加21或14?我尝试使用for循环,但由于没有定义确切的日期,用户可以随意输入日期,我很难获得预期的输出。这是我的Java入门课程,所以可能有一些元素我还没有学会。下面是一些我本以为可以工作的代码,但考虑到coDay没有预定义的值,我很难计算它如何成功地将14天添加到输入的日期

String releaseType;
int coDay; 

for (int i = 0; i <= 14; i++){
         if(releaseType == "NEW"){
      }

      System.out.println(coDay);
字符串释放类型;
int coDay;

对于(int i=0;i你说过你不必担心30天的循环,因此你只需要固定的天数

我假设您还向用户请求了一个号码以及发布类型

知道这一点,我们可以写以下内容:

String releaseType;
int coDay;

// Insert your code to scan the users input.

if (releaseType == "NEW") {
    coDay += 14;
} else {
    coDay += 21;
}

System.out.println(coDay);

+=
意味着“等同于自身,加上…”。因此
coDay+=14
意味着
coDay=coDay+14
,这意味着我们可以在用户输入中添加14天,如果它是
“新的”
,如果不是,则添加21。

您说过您不必担心30天的循环,因此您只需要固定的天数

我假设您还向用户请求了一个号码以及发布类型

知道这一点,我们可以写以下内容:

String releaseType;
int coDay;

// Insert your code to scan the users input.

if (releaseType == "NEW") {
    coDay += 14;
} else {
    coDay += 21;
}

System.out.println(coDay);

+=
意味着“等同于自身,加上…”。因此
coDay+=14
意味着
coDay=coDay+14
,这意味着我们可以在用户输入中添加14天,如果它是
“新的”
,如果不是,则改为添加21。

您可以使用java日期,而不是像
LocalDate
这样的int自定义日期,并且可以在类型中添加好的天数:

static LocalDate checkoutDate(LocalDate date, String type){
    if(type.equalsIgnoreCase("NEW"))
        return date.plusDays(14);
    else if(type.equalsIgnoreCase("OLD"))
        return date.plusDays(21);
    else 
        return date;
}
// without specific object but can't handle month problematic
static int checkoutDate(int day, String type){
    if(type.equalsIgnoreCase("NEW"))
        return day + 14;
    else if(type.equalsIgnoreCase("OLD"))
        return day + 21;
    else 
        return day;
}
然后设置或询问用户一个日期和类型,并像这样使用它

public static void main(String[] args) {
    LocalDate date = LocalDate.now();
    System.out.println(checkoutDate(date, "NEW")); // 2019-10-20
    System.out.println(checkoutDate(date, "OLD")); // 2019-10-27
}

您可以使用java日期,而不是与int一起使用的自定义日期,如
LocalDate
,并且可以在类型中添加好的天数:

static LocalDate checkoutDate(LocalDate date, String type){
    if(type.equalsIgnoreCase("NEW"))
        return date.plusDays(14);
    else if(type.equalsIgnoreCase("OLD"))
        return date.plusDays(21);
    else 
        return date;
}
// without specific object but can't handle month problematic
static int checkoutDate(int day, String type){
    if(type.equalsIgnoreCase("NEW"))
        return day + 14;
    else if(type.equalsIgnoreCase("OLD"))
        return day + 21;
    else 
        return day;
}
然后设置或询问用户一个日期和类型,并像这样使用它

public static void main(String[] args) {
    LocalDate date = LocalDate.now();
    System.out.println(checkoutDate(date, "NEW")); // 2019-10-20
    System.out.println(checkoutDate(date, "OLD")); // 2019-10-27
}

我知道我可能需要在我的程序中添加其他变量。我知道我需要在日期中添加其他元素,而不是在下个月添加,如果该月内只有30天,但到时候我会跨越这座桥梁。如果这是学校作业(家庭作业),在前面这么说。@BasilBourque公平地说,提问者说这是我的Java入门课程。我同意这是一个很好的信息,当我试图提供帮助时。作为旁白,不要使用
==
比较字符串。它有时有效,有时无效。使用
.equals
,每次都有效。我明白我可能需要这样做在我的程序中添加其他变量。我知道如果下个月只有30天,我需要在日期中添加其他元素,而不是添加到下个月,但到时候我会跨越这座桥。如果这是学校作业(家庭作业),在前面说。@BasilBourque公平地说,提问者说这是我的Java入门课程。我同意这是一个很好的信息,当我试图提供帮助时。作为旁白,不要使用
==
比较字符串。它有时有效,有时无效。使用
.equals
,每次都有效。非常感谢!我可能有7周的java课程,所以我还有很多东西要学。@GraysonG不用担心。请记住,我在这里的答案是假设你想继续使用整数几天。请参阅@azro的答案,以获得一个更完整的方法,该方法将在将来时间到来时为你节省
。非常感谢!我可能有7个几周的java课程,所以我还有很多东西要学。@GraysonG不用担心。请记住,我在这里的答案是假设你想继续使用整数几天。请参阅@azro的答案,以获得一个更完整的方法,该方法将在将来的时间到来时为你节省
。谢谢。可能是这个任务ioner不应该在作业中使用library类
LocalDate
,但如果仅向其他读者展示选项,则是很好的IMHO。谢谢。可能提问者不应该在作业中使用library类
LocalDate
,但如果仅向其他读者展示选项,则是很好的IMHO。