Мне нужно оформить отчет по продажам. Требуется получить последние 6 месяцев отчета о продажах по месяцам, и отчет будет срабатывать в 1-й день каждого месяца, содержащий данные за последние шесть месяцев. Например, если отчет должен сработать 1 апреля 2020 года в 10:00, тогда я хочу, чтобы конечная дата отчета была - 31 марта 2020 г. 23:59:59, а начальная дата - 1 октября 2019 г. 00:00:00. И между этими датами начала и окончания я хочу, чтобы диапазон дат по месяцам был мудрым, чтобы получить данные из БД за этот месяц. Например -
For March - Start Date -- 2020-03-01 00:00:00 End Date -- 2020-03-31 23:59:59
For Feb- Start Date -- 2020-02-01 00:00:00 End Date -- 2020-02-29 23:59:59
и т. Д. ... Желаемый формат даты - гггг-ММ-дд ЧЧ: мм: сс
Я планирую использовать LocalDateTime для этого, но не могу выяснить, как на самом деле достичь этого. Мой код ниже -
LocalDateTime endDate = LocalDateTime.now();
LocalDateTime startDate = endDate.minusMonths(6);
DateTimeFormatter dateFormatter3 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
for (LocalDateTime date = endDate; date.isAfter(startDate); date = date.minusMonths(1)) {
System.out.println(date.format(dateFormatter3));
}
Это мой базовый c подход к этой проблеме. Я планирую использовать для l oop, чтобы я мог получать даты начала и окончания каждого месяца и запрашивать данные из БД. Пожалуйста, помогите мне, как я могу разделить дату / время по месяцам и использовать их.
Заранее спасибо.