帮我使用java编写一个函数, 入参是LocalDate类型的两个日期,分别是开始日期和结束日期,还有一个参数是整型的班次(白班和晚班)标识,白班是早上08:00到晚上20:00, 晚班是20:00到次日08:00
好的,我可以帮你编写一个Java函数,该函数接受两个LocalDate
类型的日期(开始日期和结束日期)以及一个整型的班次标识(0表示白班,1表示晚班)。函数将根据班次标识返回对应的时间段。
以下是一个示例代码:
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class ShiftTimeCalculator {
public static void main(String[] args) {
LocalDate startDate = LocalDate.of(2023, 10, 1);
LocalDate endDate = LocalDate.of(2023, 10, 2);
int shiftType = 0; // 0 for day shift, 1 for night shift
String result = calculateShiftTime(startDate, endDate, shiftType);
System.out.println(result);
}
public static String calculateShiftTime(LocalDate startDate, LocalDate endDate, int shiftType) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
if (shiftType == 0) { // Day shift
LocalDateTime startDateTime = LocalDateTime.of(startDate, LocalTime.of(8, 0));
LocalDateTime endDateTime = LocalDateTime.of(endDate, LocalTime.of(20, 0));
return "Day Shift: " + startDateTime.format(formatter) + " to " + endDateTime.format(formatter);
} else if (shiftType == 1) { // Night shift
LocalDateTime startDateTime = LocalDateTime.of(startDate, LocalTime.of(20, 0));
LocalDateTime endDateTime = LocalDateTime.of(endDate.plusDays(1), LocalTime.of(8, 0));
return "Night Shift: " + startDateTime.format(formatter) + " to " + endDateTime.format(formatter);
} else {
return "Invalid shift type. Please use 0 for day shift and 1 for night shift.";
}
}
}
在这个示例中:
calculateShiftTime
函数接受三个参数:startDate
、endDate
和shiftType
。shiftType
的值(0表示白班,1表示晚班),函数会计算并返回对应的时间段。DateTimeFormatter
格式化输出的日期时间字符串。你可以根据需要调整这个函数的实现。希望这个示例对你有帮助!