154 lines
7.8 KiB
Java
154 lines
7.8 KiB
Java
|
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();
|
|||
|
}
|
|||
|
}
|