diff --git a/src/main/java/ru/ulstu/DateUtils.java b/src/main/java/ru/ulstu/DateUtils.java new file mode 100644 index 0000000..d1d3dd7 --- /dev/null +++ b/src/main/java/ru/ulstu/DateUtils.java @@ -0,0 +1,72 @@ +package ru.ulstu; + +import java.time.Instant; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.Month; +import java.time.ZoneId; +import java.util.Arrays; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +public class DateUtils { + + public static Date clearTime(Date date) { + if (date == null) { + return null; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + return calendar.getTime(); + } + + public static Calendar getCalendar(Date date) { + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + return cal; + } + + public static List getMonths() { + return Arrays.asList(Month.values()); + } + + public static Date instantToDate(Instant instant) { + return Date.from(instant); + } + + public static Date localDateToDate(LocalDate localDate) { + return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); + } + + public static Date localDateTimeToDate(LocalDateTime localDate) { + return Date.from(localDate.atZone(ZoneId.systemDefault()).toInstant()); + } + + public static Date localTimeToDate(LocalTime localTime) { + return Date.from(localTime.atDate(LocalDate.now()).atZone(ZoneId.systemDefault()).toInstant()); + } + + public static Date addDays(Date date, int count) { + Calendar cal = getCalendar(date); + cal.add(Calendar.DAY_OF_MONTH, count); + return cal.getTime(); + } + + public static Date addYears(Date date, int count) { + Calendar cal = getCalendar(date); + cal.add(Calendar.YEAR, count); + return cal.getTime(); + } + + public static LocalDate convertToLocalDate(Date dateToConvert) { + return dateToConvert.toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDate(); + } +}