我需要在我的程序中获取MinutesRendered
特定job
。我有特定startdate
的{{1}}和enddate
。我需要计算这两个日期之间的差异,同时跳过假期,周末和每个工作日上午8点至下午5点(周一至周五)。
我发现很难想出一个可以做到这一点的逻辑。是否有任何现有的逻辑或片段(不一定是JAVA)会告诉我这怎么可能?
答案 0 :(得分:1)
示例程序可以用于您要求的逻辑
public static void main(String[] args){
LocalDateTime startDate = LocalDateTime.now(), endDate = LocalDateTime.now().plusDays(15);
//List<String> holidays = Arrays.asList([HOLIDAY_LIST]);
long days = ChronoUnit.DAYS.between(startDate, endDate);
int daysCount = 0;
for(int i=0;i<days;i++) {
if(!("SATURDAY".equals(startDate.plusDays(i).getDayOfWeek().toString()) || "SUNDAY".equals(startDate.plusDays(i).getDayOfWeek().toString()))) {
daysCount++;
}
}
long minusMinutes = daysCount * 900;
System.out.println(ChronoUnit.MINUTES.between(startDate, endDate) - minusMinutes);
}
在上面的代码中,[HOLIDAY_LIST]
依赖于您,因为您必须在我在评论代码中指定的List中提及。