Я пытаюсь узнать номер дня, например, 1, 2 или 3, передавая имя дня, например Понедельник или Вторник , поскольку номер дня может меняться в зависимости от системного календаря (некоторые календари в воскресенье будутначальный день в какой-то понедельник).
Мне нужно узнать даты понедельника, пятницы или воскресенья, передав Индекс этих дней и номера недели.
Я могу узнать номер неделина основе даты, но для передачи номера дня (или индекса) мне нужно выяснить точный индекс на основе этой локальной системы.
Скажите, пожалуйста, возможно ли это или нет?
import java.time.LocalDateTime;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
public class HelloWorld{
public static void main(String []args){
String str = "2018-06-08 12:34:21";
int sDate, eDate;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime assignedDateTime = LocalDateTime.parse(str, formatter);
//LocalDate assignedDate = assignedDateTime.toLocalDate();
Instant instant = assignedDateTime.atZone(ZoneId.systemDefault()).toInstant();
Date dateFromOld = Date.from(instant);
Calendar calendar = new GregorianCalendar();
calendar.setTime(dateFromOld);
int weekNumber = calendar.get(calendar.WEEK_OF_MONTH);
int dayofWeek = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(assignedDateTime);
System.out.println(dateFromOld);
System.out.println(weekNumber);
System.out.println(dayofWeek);
}
}
Это код, который я написал, и из этого я могу найти номер дня недели для требуемой даты.
Но я хочу узнать номер дня, передавая имя дня, и я не нашел никаких методовза это.Существует некоторая логика, позволяющая выяснить, что, как и при написании функций Enum, в некоторых случаях эта логика также дает сбой, например, если у системы начальный день отличается от нашей функции enum.
Надеюсь, теперь все понятно.