Как добавить номера к датам - PullRequest
0 голосов
/ 06 октября 2019

Попытка выяснить, как добавить даты к не указанному int с помощью оператора if.

Попытка написать программу, которая будет использоваться для библиотечной системы. В котором пользователь должен ввести тип проверяемого элемента. (Либо классифицируется как новый или старый). Пользователь должен также проверить дату. Если товар классифицирован как НОВЫЙ, тогда срок оплаты составляет 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);

Если пользователь вводит «2» для coDay и «NEW» для releaseType, я ожидаю, что coDay будет 16.

Я понимаю, что мне может понадобиться добавить другие переменные в мою программу. И я знаю, что мне нужно добавить другие элементы к дате, а не к следующему месяцу, если в этом месяце только 30 дней, но я перейду этот мост, когда придет время

Ответы [ 2 ]

2 голосов
/ 06 октября 2019

Вы можете использовать Java-дату, а не что-то нестандартное с целыми числами, например 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
}
0 голосов
/ 06 октября 2019

Вы сказали, что вам не нужно беспокоиться о 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 дней к вводу пользователя, если это "NEW", а если нет, добавить 21 вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...