Câu hỏi:

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.


Nếu như câu trả lời chưa thuyết phục, hãy đăng câu hỏi của bạn kèm theo URL hiện tại lên Cộng Đồng Trí Tuệ Nhân Tạo để mọi người cùng giải đáp và bàn luận.
Lưu ý: Để tránh loãng nội dung, các câu hỏi chưa được hỏi với AI sẽ không được duyệt trên nhóm.
Trang chủ | Hỏi tiếp | Xem lịch sử