Как получить конкретный предстоящий день недели для введенной строки даты с использованием Java

1

Я новичок в Java и новичок в этом веб-мире. У меня есть требование реализовать в моем проекте назначения, как показано ниже:

Нам нужно добавить дни в дате ввода, чтобы создать дату предстоящего понедельника.

Пример 1: Если DateString = 17/02/2015 (вторник), то Дата выхода = 23/02/2015 (понедельник).

пример 2: Если DateString = 18/02/2015 (среда), то выведите Date = 23/02/2015 (понедельник).

пример 3: Если DateString = 23/02/2015 (понедельник), то выведите Date = 02/03/2015 (понедельник).

input: Выход строки строки: предстоящий понедельник для введенной строки даты

  • 3
    Это не похоже на то, что вы действительно пытаетесь получить название дня - вы пытаетесь переместить дату к следующему вхождению определенной даты. Теперь, какую версию Java вы используете? Если вы используете Java 8, я бы определенно рекомендовал использовать это с java.time . Если нет, можете ли вы использовать Joda Time? Оба намного лучше, чем java.util.Date / Calendar .
Теги:
date
calendar

3 ответа

0

С помощью Java 8 вы можете использовать TemporalAdjusters:

public String getNextMonday(String date, DateTimeFormatter formatter) {
    LocalDate startDate = LocalDate.parse(date, formatter);
    LocalDate monday = startDate.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
    return formatter.format(monday);
}

Позвонить

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
String nextMonday = getNextMonday("23/02/2015", formatter);
0
 public static void main(String[] args) throws IOException,ParseException{
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            System.out.print("Enter date(dd/mm/yyyy) : ");
            String input = br.readLine();
            DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
            Calendar cal = Calendar.getInstance();
            Date date = df.parse(input);
            cal.setTime(date);
            int toAdd = (9 -cal.get(Calendar.DAY_OF_WEEK));
                cal.add(Calendar.DATE,toAdd);
                System.out.println("coming monday is on: " + cal.getTime());
        }
0

Если я исправлю вас, я думаю, что ниже код - это то, что вы ищете -

String dateString = "23/02/2015";

Calendar cal=Calendar.getInstance();
DateFormat df=new SimpleDateFormat("dd/MM/yyyy");
Date date = df.parse(dateString);
cal.setTime(date);
cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
cal.add(Calendar.DATE,7);

System.out.println(df.format(cal.getTime()));

Ещё вопросы

Сообщество Overcoder
Наверх
Меню