diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 524f096..0000000 --- a/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -# Compiled class file -*.class - -# Log file -*.log - -# BlueJ files -*.ctxt - -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - -# Package Files # -*.jar -*.war -*.nar -*.ear -*.zip -*.tar.gz -*.rar - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* -replay_pid* diff --git a/DateTime.java b/DateTime.java deleted file mode 100644 index ec8fdc8..0000000 --- a/DateTime.java +++ /dev/null @@ -1,226 +0,0 @@ -import java.time.*; -import java.time.format.DateTimeFormatter; -import java.time.temporal.ChronoUnit; -import java.util.Locale; -import java.util.Random; -import java.util.Scanner; - -public class DateTimeTasks { - - private static final Scanner scanner = new Scanner(System.in); - - public static void main(String[] args) { - while (true) { - System.out.println("\nВыберите задачу:"); - System.out.println("1. Текущая дата и время"); - System.out.println("2. Сравнение дат"); - System.out.println("3. Дни до Нового года"); - System.out.println("4. Проверка високосного года"); - System.out.println("5. Подсчет выходных за месяц"); - System.out.println("6. Время выполнения метода"); - System.out.println("7. Форматирование и парсинг даты"); - System.out.println("8. Конвертация между часовыми поясами"); - System.out.println("9. Вычисление возраста по дате рождения"); - System.out.println("10. Календарь на месяц"); - System.out.println("11. Генерация случайной даты"); - System.out.println("12. Время до события"); - System.out.println("13. Вычисление рабочих часов"); - System.out.println("14. Формат даты с учетом локали"); - System.out.println("15. День недели по дате"); - System.out.println("0. Выход"); - int choice = scanner.nextInt(); - scanner.nextLine(); // Consume newline - - switch (choice) { - case 1: - showCurrentDateTime(); - break; - case 2: - compareDates(); - break; - case 3: - daysUntilNewYear(); - break; - case 4: - checkLeapYear(); - break; - case 5: - countWeekendsInMonth(); - break; - case 6: - measureMethodExecution(); - break; - case 7: - formatAndParseDate(); - break; - case 8: - convertTimeZone(); - break; - case 9: - calculateAge(); - break; - case 10: - printMonthlyCalendar(); - break; - case 11: - generateRandomDate(); - break; - case 12: - timeUntilEvent(); - break; - case 13: - calculateWorkingHours(); - break; - case 14: - formatDateWithLocale(); - break; - case 15: - dayOfWeekInRussian(); - break; - case 0: - System.out.println("Выход..."); - return; - default: - System.out.println("Неверный выбор!"); - } - } - } - - private static void showCurrentDateTime() { - LocalDate currentDate = LocalDate.now(); - LocalTime currentTime = LocalTime.now(); - DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("dd-MM-yyyy"); - DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss"); - System.out.println("Текущая дата: " + currentDate.format(dateFormatter)); - System.out.println("Текущее время: " + currentTime.format(timeFormatter)); - } - - private static void compareDates() { - System.out.println("Введите первую дату (yyyy-MM-dd):"); - LocalDate date1 = LocalDate.parse(scanner.nextLine()); - System.out.println("Введите вторую дату (yyyy-MM-dd):"); - LocalDate date2 = LocalDate.parse(scanner.nextLine()); - - if (date1.isAfter(date2)) { - System.out.println("Первая дата больше второй."); - } else if (date1.isBefore(date2)) { - System.out.println("Первая дата меньше второй."); - } else { - System.out.println("Даты равны."); - } - } - - private static void daysUntilNewYear() { - LocalDate today = LocalDate.now(); - LocalDate newYear = LocalDate.of(today.getYear() + 1, 1, 1); - long daysUntil = ChronoUnit.DAYS.between(today, newYear); - System.out.println("До Нового года осталось " + daysUntil + " дней."); - } - - private static void checkLeapYear() { - System.out.println("Введите год:"); - int year = scanner.nextInt(); - boolean isLeap = Year.isLeap(year); - System.out.println(year + " високосный? " + isLeap); - } - private static void countWeekendsInMonth() { - System.out.println("Введите месяц и год (MM yyyy):"); - int month = scanner.nextInt(); - int year = scanner.nextInt(); - LocalDate date = LocalDate.of(year, month, 1); - int weekends = 0; - while (date.getMonthValue() == month) { - DayOfWeek day = date.getDayOfWeek(); - if (day == DayOfWeek.SATURDAY || day == DayOfWeek.SUNDAY) { - weekends++; - } - date = date.plusDays(1); - } - System.out.println("Количество выходных: " + weekends); - } - - private static void measureMethodExecution() { - long start = System.nanoTime(); - for (int i = 0; i < 1_000_000; i++) { - Math.sqrt(i); - } - long end = System.nanoTime(); - System.out.println("Время выполнения: " + (end - start) + " наносекунд."); - } - - private static void formatAndParseDate() { - System.out.println("Введите дату в формате dd-MM-yyyy:"); - String inputDate = scanner.nextLine(); - LocalDate date = LocalDate.parse(inputDate, DateTimeFormatter.ofPattern("dd-MM-yyyy")); - LocalDate newDate = date.plusDays(10); - System.out.println("Новая дата: " + newDate.format(DateTimeFormatter.ofPattern("yyyy/MM/dd"))); - } - - private static void convertTimeZone() { - System.out.println("Введите дату и время в формате yyyy-MM-dd HH:mm:ss (UTC):"); - String inputDateTime = scanner.nextLine(); - LocalDateTime dateTime = LocalDateTime.parse(inputDateTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); - ZonedDateTime utcDateTime = dateTime.atZone(ZoneId.of("UTC")); - ZonedDateTime moscowDateTime = utcDateTime.withZoneSameInstant(ZoneId.of("Europe/Moscow")); - System.out.println("Дата и время в Moscow: " + moscowDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); - } - - private static void calculateAge() { - System.out.println("Введите дату рождения (yyyy-MM-dd):"); - LocalDate birthDate = LocalDate.parse(scanner.nextLine()); - int age = Period.between(birthDate, LocalDate.now()).getYears(); - System.out.println("Ваш возраст: " + age + " лет."); - } - - private static void printMonthlyCalendar() { - System.out.println("Введите месяц и год (MM yyyy):"); - int month = scanner.nextInt(); - int year = scanner.nextInt(); - LocalDate date = LocalDate.of(year, month, 1); - while (date.getMonthValue() == month) { - System.out.println(date + " - " + (date.getDayOfWeek() == DayOfWeek.SATURDAY || date.getDayOfWeek() == DayOfWeek.SUNDAY ? "Выходной" : "Рабочий день")); - date = date.plusDays(1); - } - } - - private static void generateRandomDate() { - System.out.println("Введите начальную дату (yyyy-MM-dd):"); - LocalDate startDate = LocalDate.parse(scanner.nextLine()); - System.out.println("Введите конечную дату (yyyy-MM-dd):"); - LocalDate endDate = LocalDate.parse(scanner.nextLine()); - - long daysBetween = ChronoUnit.DAYS.between(startDate, endDate); - Random random = new Random(); - LocalDate randomDate = startDate.plusDays(random.nextInt((int) daysBetween + 1)); - System.out.println("Случайная дата: " + randomDate); - } - - private static void timeUntilEvent() { - System.out.println("Введите дату и время события (yyyy-MM-dd HH:mm:ss):"); - LocalDateTime eventDateTime = LocalDateTime.parse(scanner.nextLine(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); - Duration duration = Duration.between(LocalDateTime.now(), eventDateTime); - System.out.println("До события осталось: " + duration.toHoursPart() + " часов, " + duration.toMinutesPart() + " минут, " + duration.toSecondsPart() + " секунд."); - } - private static void calculateWorkingHours() { - System.out.println("Введите начало рабочего дня (yyyy-MM-dd HH:mm):"); - LocalDateTime start = LocalDateTime.parse(scanner.nextLine(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); - System.out.println("Введите конец рабочего дня (yyyy-MM-dd HH:mm):"); - LocalDateTime end = LocalDateTime.parse(scanner.nextLine(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); - - Duration duration = Duration.between(start, end); - System.out.println("Количество рабочих часов: " + duration.toHours()); - } - - private static void formatDateWithLocale() { - System.out.println("Введите дату (yyyy-MM-dd):"); - LocalDate date = LocalDate.parse(scanner.nextLine()); - System.out.println("Дата в локали RU: " + date.format(DateTimeFormatter.ofPattern("dd MMMM yyyy", new Locale("ru")))); - } - - private static void dayOfWeekInRussian() { - System.out.println("Введите дату (yyyy-MM-dd):"); - LocalDate date = LocalDate.parse(scanner.nextLine()); - String dayOfWeek = date.getDayOfWeek().getDisplayName(java.time.format.TextStyle.FULL, new Locale("ru")); - System.out.println("День недели: " + dayOfWeek); - } -} \ No newline at end of file diff --git a/Singleton.java b/Singleton.java deleted file mode 100644 index 942fd25..0000000 --- a/Singleton.java +++ /dev/null @@ -1,132 +0,0 @@ -import java.util.ArrayList; -import java.util.List; -import java.util.Scanner; - -enum OrderStatus { - NEW, IN_PROGRESS, DELIVERED, CANCELLED -} - -enum Season { - WINTER, SPRING, SUMMER, AUTUMN -} - -class DatabaseConnection { - private static DatabaseConnection instance; - - private DatabaseConnection() { - System.out.println("Подключение к базе данных создано."); - } - - public static synchronized DatabaseConnection getInstance() { - if (instance == null) { - instance = new DatabaseConnection(); - } - return instance; - } - - public void connect() { - System.out.println("Вы подключены к базе данных."); - } -} - -class Logger { - private static Logger instance; - private List logs = new ArrayList<>(); - - private Logger() {} - - public static synchronized Logger getInstance() { - if (instance == null) { - instance = new Logger(); - } - return instance; - } - - public void log(String message) { - logs.add(message); - System.out.println("Сообщение добавлено в лог: " + message); - } - - public void displayLogs() { - System.out.println("Все сообщения логов:"); - for (String log : logs) { - System.out.println(log); - } - } -} - -class Order { - private String orderId; - private OrderStatus status; - - public Order(String orderId) { - this.orderId = orderId; - this.status = OrderStatus.NEW; - System.out.println("Создан заказ с ID: " + orderId + " и статусом: " + status); - } - - public void changeStatus(OrderStatus newStatus) { - if (status == OrderStatus.DELIVERED && newStatus == OrderStatus.CANCELLED) { - System.out.println("Невозможно отменить доставленный заказ!"); - } else { - status = newStatus; - System.out.println("Статус заказа изменен на: " + status); - } - } - - public OrderStatus getStatus() { - return status; - } -} - -public class Singleton{ - public static String getSeasonName(Season season) { - switch (season) { - case WINTER: - return "Зима"; - case SPRING: - return "Весна"; - case SUMMER: - return "Лето"; - case AUTUMN: - return "Осень"; - default: - return "Неизвестный сезон"; - } - } - - - public static void main(String[] args) { - Scanner scanner = new Scanner(System.in); - - // Задача 1: Singleton для подключения к базе данных - System.out.println("Введите любое значение для создания подключения к базе данных:"); - scanner.nextLine(); - DatabaseConnection connection1 = DatabaseConnection.getInstance(); - connection1.connect(); - - // Задача 2: Логирование - Logger logger = Logger.getInstance(); - System.out.println("Введите сообщение для лога (или 'exit' для выхода):"); - String input; - while (!(input = scanner.nextLine()).equalsIgnoreCase("exit")) { - logger.log(input); - } - logger.displayLogs(); - - // Задача 3: Работа со статусами заказа - Order order = new Order("12345"); - order.changeStatus(OrderStatus.IN_PROGRESS); - order.changeStatus(OrderStatus.DELIVERED); - order.changeStatus(OrderStatus.CANCELLED); - - // Задача 4: Работа с Enum сезонов года - System.out.println("Введите сезон (WINTER, SPRING, SUMMER, AUTUMN):"); - try { - Season season = Season.valueOf(scanner.nextLine().toUpperCase()); - System.out.println("Название сезона на русском: " + getSeasonName(season)); - } catch (IllegalArgumentException e) { - System.out.println("Некорректное значение сезона."); - } - } -} \ No newline at end of file