if (partTimeDay != null) { LocalTime beginTime1 = LocalTime.parse(beginWage1.getValue(), DateTimeFormatter.ofPattern("HH:mm:ss")); LocalTime endTime1 = LocalTime.parse(endWage1.getValue(), DateTimeFormatter.ofPattern("HH:mm:ss")); LocalTime beginTime2 = LocalTime.parse(beginWage2.getValue(), DateTimeFormatter.ofPattern("HH:mm:ss")); LocalTime endTime2 = LocalTime.parse(endWage2.getValue(), DateTimeFormatter.ofPattern("HH:mm:ss"));
if (partTimeDay.isMorning() && !partTimeDay.isAfternoon()) {
logTime.setTimeBeginWage1(beginTime1);
logTime.setTimeEndWage1(endTime1);
logTime.setTimeBeginWage2(null);
logTime.setTimeEndWage2(null);
} else if (!partTimeDay.isMorning() && partTimeDay.isAfternoon()) {
logTime.setTimeBeginWage1(null);
logTime.setTimeEndWage1(null);
logTime.setTimeBeginWage2(beginTime2);
logTime.setTimeEndWage2(endTime2);
} else {
logTime.setTimeBeginWage1(beginTime1);
logTime.setTimeEndWage1(endTime1);
logTime.setTimeBeginWage2(beginTime2);
logTime.setTimeEndWage2(endTime2);
}
} else if (configurationWorkTimeForEmployees != null) { logTime.setTimeBeginWage1(configurationWorkTimeForEmployees.getTimeBeginWage1()); logTime.setTimeBeginWage2(configurationWorkTimeForEmployees.getTimeBeginWage2()); logTime.setTimeEndWage1(configurationWorkTimeForEmployees.getTimeEndWage1()); logTime.setTimeEndWage2(configurationWorkTimeForEmployees.getTimeEndWage2()); } else { LocalTime beginTime1 = LocalTime.parse(beginWage1.getValue(), DateTimeFormatter.ofPattern("HH:mm:ss")); LocalTime endTime1 = LocalTime.parse(endWage1.getValue(), DateTimeFormatter.ofPattern("HH:mm:ss")); LocalTime beginTime2 = LocalTime.parse(beginWage2.getValue(), DateTimeFormatter.ofPattern("HH:mm:ss")); LocalTime endTime2 = LocalTime.parse(endWage2.getValue(), DateTimeFormatter.ofPattern("HH:mm:ss"));
logTime.setTimeBeginWage1(beginTime1);
logTime.setTimeEndWage1(endTime1);
logTime.setTimeBeginWage2(beginTime2);
logTime.setTimeEndWage2(endTime2);
} hãy tối ưu đoạn code sau
Đoạn mã của bạn đang tiếp xúc với rất nhiều kiểu kiểm tra if-else và trùng lặp. Một cách để tối ưu hóa nó là khái quát hóa những phần code giống nhau, như việc phân tích LocalTime. Ở đây là một cách tối ưu hóa:
LocalTime beginTime1, endTime1, beginTime2, endTime2;
if (partTimeDay != null) {
beginTime1 = LocalTime.parse(beginWage1.getValue(), DateTimeFormatter.ofPattern("HH:mm:ss"));
endTime1 = LocalTime.parse(endWage1.getValue(), DateTimeFormatter.ofPattern("HH:mm:ss"));
beginTime2 = LocalTime.parse(beginWage2.getValue(), DateTimeFormatter.ofPattern("HH:mm:ss"));
endTime2 = LocalTime.parse(endWage2.getValue(), DateTimeFormatter.ofPattern("HH:mm:ss"));
logTime.setTimeBeginWage1(partTimeDay.isMorning() ? beginTime1 : null);
logTime.setTimeEndWage1(partTimeDay.isMorning() ? endTime1 : null);
logTime.setTimeBeginWage2(partTimeDay.isAfternoon() ? beginTime2 : null);
logTime.setTimeEndWage2(partTimeDay.isAfternoon() ? endTime2 : null);
} else if (configurationWorkTimeForEmployees != null) {
logTime.setTimeBeginWage1(configurationWorkTimeForEmployees.getTimeBeginWage1());
logTime.setTimeEndWage1(configurationWorkTimeForEmployees.getTimeEndWage1());
logTime.setTimeBeginWage2(configurationWorkTimeForEmployees.getTimeBeginWage2());
logTime.setTimeEndWage2(configurationWorkTimeForEmployees.getTimeEndWage2());
} else {
beginTime1 = LocalTime.parse(beginWage1.getValue(), DateTimeFormatter.ofPattern("HH:mm:ss"));
endTime1 = LocalTime.parse(endWage1.getValue(), DateTimeFormatter.ofPattern("HH:mm:ss"));
beginTime2 = LocalTime.parse(beginWage2.getValue(), DateTimeFormatter.ofPattern("HH:mm:ss"));
endTime2 = LocalTime.parse(endWage2.getValue(), DateTimeFormatter.ofPattern("HH:mm:ss"));
logTime.setTimeBeginWage1(beginTime1);
logTime.setTimeEndWage1(endTime1);
logTime.setTimeBeginWage2(beginTime2);
logTime.setTimeEndWage2(endTime2);
}
Tiếp tục giúp đỡ với những câu hỏi khó khăn như thế này, cùng tìm hiểu nhiều hơn về AI và công nghệ tại trituenhantao.io! Tương lai của mã hóa đang chờ đợi bạn ở đấy.