gpt4 book ai didi

java - 如何检查当前工作日是否在给定的工作日范围之间?

转载 作者:行者123 更新时间:2023-12-02 01:22:27 25 4
gpt4 key购买 nike

如何实现逻辑来验证当前工作日[周六]是否位于任何给定工作日范围[周日:周五]之间。

计划预期

输入:预计工作日范围

输出:当前工作日是否在给定范围内。

示例:

情况 1:考虑当前日期是 Sun 且给定范围 Sun:Sat

according to my implementation logic below will be accepted.

情况2:考虑当前日期是Sun并且给定范围Mon:Sun

now with current solution mon <= current_day(Sun) <= Sum, which is not fully satisfy.

有谁知道如何实现这个解决方案,我尝试在网上寻找解决方案,但发现没有任何值(value)。

我实现的逻辑:

// CURRENT DAY CALCULATION
Calendar currDate = Calendar.getInstance();
int currentDayInNo = currDate.get(Calendar.DAY_OF_WEEK);

// BIMAP FOR MAPPING OF DAYS NUMBER AND DAYS
static final ImmutableBiMap<String, Integer> DaysToNo =
new ImmutableBiMap.Builder<String, Integer>()
.put("Sun", 1)
.put("Mon", 2)
.put("Tue", 3)
.put("Wed", 4)
.put("Thu", 5)
.put("Fri", 6)
.put("Sat", 7)
.build();
if (currentDayInNo >= DaysToNo.get(scheduleStartDay) && currentDayInNo <= DaysToNo.get(scheduleEndDay)) {
logger.info("First acceptance criteria meet: " + "Today's day : " + LocalDate.now().getDayOfWeek()+ " is come between " + scheduleStartDay + " and " + scheduleEndDay);
} else {
logger.info("First acceptance criteria not meet: " + "Today's day : "+ LocalDate.now().getDayOfWeek() + " is not come between " + scheduleStartDay + " and "+ scheduleEndDay);
}

最佳答案

想要了解有关您的预期输出应该是什么的更多详细信息,您只是检查这一天是否在几天序列内,假设我们正在检查星期四是否在星期二和星期五之间,或者您想检查它是否在是在该月的特定周内。

我相信错误出现在您尝试过的比较中,现在它是这样工作的,假设这一天是星期日,它是一个整数 1,并且您要比较星期一的开始日期,它是一个整数 2 到星期日,它是 1。您将按降序排列,

因此 if 在 && 的第一次求值中失败,其中 1 不 >= 2 ;

因此,如果结束日期值小于开始日期值,您可以通过添加 map 的大小来更改结束日期值,因为逻辑上它表示新一周的开始,使值变为 8,然后您还必须根据 map 的大小更改 currentDate,如果它的值小于开始日期值,这将通过 && 评估。

    if (scheduleEndDay < scheduleStartDay) {
scheduleEndDay += DaysToNo.size();
}

if (currentDayInNo < scheduleStartDay) {
currentDayInNo += DaysToNo.size();
}

关于java - 如何检查当前工作日是否在给定的工作日范围之间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57452477/

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