MiAKD/Lab 4/DateTimeOperations.java
nikbel2004@outlook.com 86094e3d5a AllLabs
2024-09-15 23:54:00 +04:00

154 lines
7.8 KiB
Java
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;
public class DateTimeOperations {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");
System.out.println("Выберите тип операции:");
System.out.println("1. Прибавить дни/месяцы/часы/минуты");
System.out.println("2. Вычесть дни/месяцы/часы/минуты");
int operationType = scanner.nextInt();
System.out.println("Выберите объект для операции:");
System.out.println("1. Дата");
System.out.println("2. Время");
System.out.println("3. Дата и время");
int objectType = scanner.nextInt();
// Получаем текущую дату, время и дату-время
// LocalDate currentDate = LocalDate.now();
// LocalTime currentTime = LocalTime.now();
// LocalDateTime currentDateTime = LocalDateTime.now();
// System.out.println("Текущая дата: " + currentDate);
// System.out.println("Текущее время: " + currentTime);
// System.out.println("Текущее дата и время: " + currentDateTime);
if (objectType == 1) {
// Операции с датой
LocalDate date = LocalDate.now();
System.out.println("Текущая дата: " + date.format(dateFormatter));
if (operationType == 1) {
System.out.println("Введите количество дней для прибавления:");
int days = scanner.nextInt();
System.out.println("Введите количество месяцев для прибавления:");
int months = scanner.nextInt();
LocalDate newDate = date.plusDays(days).plusMonths(months);
System.out.println("Новая дата: " + newDate.format(dateFormatter));
} else {
System.out.println("Введите количество дней для вычитания:");
int days = scanner.nextInt();
System.out.println("Введите количество месяцев для вычитания:");
int months = scanner.nextInt();
LocalDate newDate = date.minusDays(days).minusMonths(months);
System.out.println("Новая дата: " + newDate.format(dateFormatter));
}
} else if (objectType == 2) {
// Операции со временем
LocalTime time = LocalTime.now();
System.out.println("Текущее время: " + time.format(timeFormatter));
if (operationType == 1) {
System.out.println("Введите количество часов для прибавления:");
int hours = scanner.nextInt();
System.out.println("Введите количество минут для прибавления:");
int minutes = scanner.nextInt();
LocalTime newTime = time.plusHours(hours).plusMinutes(minutes);
System.out.println("Новое время: " + newTime.format(timeFormatter));
} else {
System.out.println("Введите количество часов для вычитания:");
int hours = scanner.nextInt();
System.out.println("Введите количество минут для вычитания:");
int minutes = scanner.nextInt();
LocalTime newTime = time.minusHours(hours).minusMinutes(minutes);
System.out.println("Новое время: " + newTime.format(timeFormatter));
}
} else if (objectType == 3) {
// Операции с датой и временем
LocalDateTime dateTime = LocalDateTime.now();
System.out.println("Текущие дата и время: " + dateTime.format(dateTimeFormatter));
if (operationType == 1) {
System.out.println("Введите количество дней для прибавления:");
int days = scanner.nextInt();
System.out.println("Введите количество месяцев для прибавления:");
int months = scanner.nextInt();
System.out.println("Введите количество часов для прибавления:");
int hours = scanner.nextInt();
System.out.println("Введите количество минут для прибавления:");
int minutes = scanner.nextInt();
LocalDateTime newDateTime = dateTime.plusDays(days).plusMonths(months).plusHours(hours).plusMinutes(minutes);
System.out.println("Новые дата и время: " + newDateTime.format(dateTimeFormatter));
} else {
System.out.println("Введите количество дней для вычитания:");
int days = scanner.nextInt();
System.out.println("Введите количество месяцев для вычитания:");
int months = scanner.nextInt();
System.out.println("Введите количество часов для вычитания:");
int hours = scanner.nextInt();
System.out.println("Введите количество минут для вычитания:");
int minutes = scanner.nextInt();
LocalDateTime newDateTime = dateTime.minusDays(days).minusMonths(months).minusHours(hours).minusMinutes(minutes);
System.out.println("Новые дата и время: " + newDateTime.format(dateTimeFormatter));
}
}
// Ввод и разбор даты
scanner.nextLine(); // consume the newline
System.out.println("Введите дату в формате 'dd-MM-yyyy':");
String dateString = scanner.nextLine();
if (dateString != null && !dateString.trim().isEmpty()) {
try {
LocalDate parsedDate = LocalDate.parse(dateString, dateFormatter);
System.out.println("Преобразованная дата: " + parsedDate);
} catch (Exception e) {
System.out.println("Ошибка: Некорректный формат даты.");
}
} else {
System.out.println("Ошибка: Дата не может быть пустой.");
}
// Ввод и разбор даты и времени
System.out.println("Введите дату и время в формате 'dd-MM-yyyy HH:mm:ss':");
String dateTimeString = scanner.nextLine();
if (dateTimeString != null && !dateTimeString.trim().isEmpty()) {
try {
LocalDateTime parsedDateTime = LocalDateTime.parse(dateTimeString, dateTimeFormatter);
System.out.println("Преобразованные дата и время: " + parsedDateTime);
} catch (Exception e) {
System.out.println("Ошибка: Некорректный формат даты и времени.");
}
} else {
System.out.println("Ошибка: Дата и время не могут быть пустыми.");
}
scanner.close();
}
}