Умные решения для умных людей

Задача:

Напишите программу, которая запрашивает у пользователя дату и определяет, является ли она выходным днем. Java.

План:

  • Алгоритм решения
  • Код программы
  • Примеры входных данных и ожидаемых результатов
  • Объяснение кода программы
  • Блок-схема

Алгоритм решения:

  1. Импорт необходимых классов для работы с датами и вводом пользователя.

  2. Создание объекта Scanner для чтения пользовательского ввода.

  3. Определение формата даты с помощью DateTimeFormatter.

  4. Запрос у пользователя ввода даты в формате "dd.MM.yyyy".

  5. Обработка введенной даты в блоке try-catch:

    • Парсинг введенной строки в объект LocalDate.
    • Получение дня недели для введенной даты.
  6. Проверка, является ли день недели субботой или воскресеньем:

    • Если да, вывод сообщения о том, что дата является выходным днем.
    • Если нет, вывод сообщения о том, что дата является рабочим днем.
  7. В случае ошибки парсинга даты (неверный формат):

    • Вывод сообщения об ошибке и указание правильного формата.
  8. Закрытие объекта Scanner.

Код программы на языке Java:

Код Java
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;

public class WeekendChecker {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");

        System.out.print("Enter a date (dd.MM.yyyy): ");
        String input = scanner.nextLine();

        try {
            LocalDate date = LocalDate.parse(input, formatter);
            DayOfWeek dayOfWeek = date.getDayOfWeek();

            if (dayOfWeek == DayOfWeek.SATURDAY || dayOfWeek == DayOfWeek.SUNDAY) {
                System.out.println("The entered date is a weekend.");
            } else {
                System.out.println("The entered date is a weekday.");
            }
        } catch (Exception e) {
            System.out.println("Invalid date format. Please use dd.MM.yyyy.");
        }

        scanner.close();
    }
}

ИИ поможет Вам:

  • решит любую задачу
  • объяснит код
  • расставит комментарии в коде
  • и т.д
Попробуйте

Примеры входных данных и ожидаемых результатов:

Input: 15.05.2023
Output: The entered date is a weekday.

Input: 20.05.2023
Output: The entered date is a weekend.

Input: 21.05.2023
Output: The entered date is a weekend.

Input: 22.05.2023
Output: The entered date is a weekday.

Input: 01.01.2024
Output: The entered date is a weekday.

Input: 31.12.2023
Output: The entered date is a weekend.

Input: 29.02.2024
Output: The entered date is a weekday.

Input: 29.02.2023
Output: Invalid date format. Please use dd.MM.yyyy.

Input: 32.05.2023
Output: Invalid date format. Please use dd.MM.yyyy.

Input: 15-05-2023
Output: Invalid date format. Please use dd.MM.yyyy.

Объяснение кода программы:

  1. Импорт необходимых классов:

    import java.time.DayOfWeek;
    import java.time.LocalDate;
    import java.time.format.DateTimeFormatter;
    import java.util.Scanner;
    Импортируются классы для работы с датами, форматирования дат и ввода пользовательских данных.

  2. Объявление класса и метода main:

    public class WeekendChecker {
        public static void main(String[] args) {
    Создается класс WeekendChecker с методом main, который является точкой входа в программу.

  3. Инициализация Scanner и DateTimeFormatter:

    Scanner scanner = new Scanner(System.in);
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
    Создается объект Scanner для чтения пользовательского ввода и форматтер для парсинга даты в формате "dd.MM.yyyy".

  4. Запрос даты у пользователя:

    System.out.print("Enter a date (dd.MM.yyyy): ");
    String input = scanner.nextLine();
    Выводится приглашение ввести дату, и считывается введенная строка.

  5. Обработка введенной даты:

    try {
        LocalDate date = LocalDate.parse(input, formatter);
        DayOfWeek dayOfWeek = date.getDayOfWeek();
    Происходит попытка парсинга введенной строки в объект LocalDate и получение дня недели.

  6. Проверка на выходной день:

    if (dayOfWeek == DayOfWeek.SATURDAY || dayOfWeek == DayOfWeek.SUNDAY) {
        System.out.println("The entered date is a weekend.");
    } else {
        System.out.println("The entered date is a weekday.");
    }
    Проверяется, является ли день недели субботой или воскресеньем, и выводится соответствующее сообщение.

  7. Обработка исключений:

    } catch (Exception e) {
        System.out.println("Invalid date format. Please use dd.MM.yyyy.");
    }
    Если при парсинге даты возникает исключение, выводится сообщение об ошибке.

  8. Закрытие Scanner:

    scanner.close();
    Закрывается объект Scanner для освобождения ресурсов.

Блок-схема:

Нажмите на изображение, чтобы увеличить

Блок-схема к задаче: Напишите программу, которая запрашивает у пользователя дату и определяет, является ли она выходным днем.

Личный кабинет

  1. Приоритетная обработка
    Запросы от пользователей личного кабинета обрабатываются в первую очередь
  2. Бонус за регистрацию
    Стартовый бонус на счёт личного кабинета (~20 запросов), без регистрации - 3 запроса
  3. Все передовые нейросети
    В личном кабинете представлен широкий выбор нейросетей (20+).
  4. Генерация реалистичных изображений
    Midjourney 6.0, Stable Diffusion XL, Dall-E 3, Playground v2.5, Flux.1 Schnell, Flux.1 Dev, Flux.1 Pro, Flux.1.1 Pro, Kolors, Recraft v3, GPT Image 1 (low), GPT Image 1 (medium), GPT Image 1 (high)
  5. Создание музыки
    Нейросеть Suno создает музыку на основе вашего текста
  6. Нет ограничения на количество символов
    Без регистрации вы можете отправить запрос не более 1000 символов
  7. Работа с файлами
    Поддержка всех популярных форматов: pdf, excel, word, powerpoint, odt, c, js, php, py, html, sql, xml, yaml, markdown, txt, json, csv, png, jpeg и другие
Зарегистрироваться
Личный кабинет smartbuddy.ru