gpt4 book ai didi

java - 使用java + spring实现时间段(Window)

转载 作者:太空宇宙 更新时间:2023-11-04 08:19:26 25 4
gpt4 key购买 nike

我需要根据cron表达式实现5个用户的时间窗口

  1. 第一个用户的工作时间为上午 8 点至上午 10 点。
  2. 第二个用户的工作时间为上午 9 点至下午 5 点。

同样。

我将根据用户处于其操作时间窗口内的情况运行报告。如果不是,我就忽略该用户。我正在使用“OSGI”spring 服务器来托管它。

我需要知道在特定时间谁是拥有运行窗口的用户。

我看了

org.springframework.scheduling.quartz.SchedulerFactoryBean

为了实现这个目标。有没有更好的选择?

请指教。

提前致谢。

最佳答案

使用quartz Framework中的org.quartz.CronExpression,它有一个方法:getNextValidTimeAfter(Date date),返回给定数据时间之后的下一个/数据时间。

因此解决方案可能如下所示:

Date now = new Date();   
Date earlyesPossibleLogin = now - maxLoginDuration //This is psydo code, I can subtact something from a date
CronExpression cron = new CronExpression("....");
Date allowedLoginSinceEarlyestLogin = cron.getNextValidTimeAfter(earlyesPossibleLogin);
if(allowedLoginSinceEarlyestLogin > now) {
throw new LoginDeniedException("you are out of your window.");
}

关于java - 使用java + spring实现时间段(Window),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9838339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com