Java 如何检查当前星期日是否介于给定星期日范围之间?

Java 如何检查当前星期日是否介于给定星期日范围之间?,java,logic,Java,Logic,如何实现逻辑以验证当前工作日[星期六]在任何给定的工作日范围[星期日:星期五]之间 计划期望 输入:预期的工作日范围 输出:当前工作日是否在给定范围内 例如: Case1:考虑当前太阳是太阳和给定范围太阳: 根据我的实施逻辑,以下将被接受 Case2:考虑当前一天是太阳和给定范围 现在使用当前解决方案mon不确定我是否正确理解您的需求,是否要检查连续几周之间的工作日 // CURRENT DAY CALCULATION Calendar currDate = Calendar.getInstan

如何实现逻辑以验证当前工作日[星期六]在任何给定的工作日范围[星期日:星期五]之间

计划期望 输入:预期的工作日范围

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

例如:

Case1:考虑当前太阳是太阳和给定范围太阳: 根据我的实施逻辑,以下将被接受

Case2:考虑当前一天是太阳和给定范围
现在使用当前解决方案mon不确定我是否正确理解您的需求,是否要检查连续几周之间的工作日

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

// BIMAP FOR MAPPING OF DAYS NUMBER AND DAYS
//@formatter:off
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();

int startDateInNo = DaysToNo.get(scheduleStartDay);
int endDateInNo = DaysToNo.get(scheduleEndDay);
int daysInWeek = DaysToNo.size();

if (endDateInNo < startDateInNo) {
    endDateInNo += daysInWeek;
}

if (currentDayInNo <  startDateInNo) {
    currentDatInNo += daysInWeek;
}

if (currentDayInNo >= startDateInNo && currentDayInNo <= endDateInNo) {
        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);
}
//当日计算
Calendar currDate=Calendar.getInstance();
int currentDayInNo=currDate.get(Calendar.DAY/u周);
//用于映射天数和天数的BIMAP
//@格式化程序:关闭
静态最终ImmutableBiMap DaysToNo=
新的ImmutableBiMap.Builder()
.put(“Sun”,1)
.put(“Mon”,2)
.付诸表决(“星期二”,3)
.付诸表决(“星期三”,4)
.put(“Thu”,5)
.付诸表决(“星期五”,6)
.put(“Sat”,7)
.build();
int startDateInNo=DaysToNo.get(schedulesttartday);
int-endDateInNo=DaysToNo.get(scheduleEndDay);
int daysInWeek=DaysToNo.size();
如果(endDateInNo如果(currentDayInNo>=startDateInNo&¤tDayInNo不确定我是否正确理解您的要求,是否要检查连续两周之间的工作日

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

// BIMAP FOR MAPPING OF DAYS NUMBER AND DAYS
//@formatter:off
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();

int startDateInNo = DaysToNo.get(scheduleStartDay);
int endDateInNo = DaysToNo.get(scheduleEndDay);
int daysInWeek = DaysToNo.size();

if (endDateInNo < startDateInNo) {
    endDateInNo += daysInWeek;
}

if (currentDayInNo <  startDateInNo) {
    currentDatInNo += daysInWeek;
}

if (currentDayInNo >= startDateInNo && currentDayInNo <= endDateInNo) {
        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);
}
//当日计算
Calendar currDate=Calendar.getInstance();
int currentDayInNo=currDate.get(Calendar.DAY/u周);
//用于映射天数和天数的BIMAP
//@格式化程序:关闭
静态最终ImmutableBiMap DaysToNo=
新的ImmutableBiMap.Builder()
.put(“Sun”,1)
.put(“Mon”,2)
.付诸表决(“星期二”,3)
.付诸表决(“星期三”,4)
.put(“Thu”,5)
.付诸表决(“星期五”,6)
.put(“Sat”,7)
.build();
int startDateInNo=DaysToNo.get(schedulesttartday);
int-endDateInNo=DaysToNo.get(scheduleEndDay);
int daysInWeek=DaysToNo.size();
如果(endDateInNo如果(currentDayInNo>=startDaetinno&¤tDayInNo想要更多关于您的预期输出的详细信息,您只是在检查这一天是否在一系列天内,比如说我们正在检查周四是否在周二和周五之间,或者您想检查它是否在一个月的特定一周内

我相信错误来自于你尝试过的比较, 这是它现在的工作原理,假设一天是星期天,整数是1,你比较星期一的开始日期,整数是2,星期天是1,你按降序排列

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

因此,如果“结束日”值小于“开始日”值,您可以通过添加地图的大小来更改“结束日”值,因为从逻辑上讲,它表示新一周的开始,将值设为8,那么您也必须使用地图的大小更改currentDate,如果其值小于“开始日”值,则这将通过&&评估

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

if (currentDayInNo <  scheduleStartDay) {
    currentDayInNo += DaysToNo.size();
}
if(scheduleEndDay
想了解更多关于您的预期输出的详细信息,您只是在检查一天是否在一系列天内,比如说我们正在检查周四是否在周二和周五之间,或者您想检查它是否在一个月的特定周内

我相信错误来自于你尝试过的比较, 这是它现在的工作原理,假设一天是星期天,整数是1,你比较星期一的开始日期,整数是2,星期天是1,你按降序排列

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

因此,如果“结束日”值小于“开始日”值,您可以通过添加地图的大小来更改“结束日”值,因为从逻辑上讲,它表示新一周的开始,将值设为8,那么您也必须使用地图的大小更改currentDate,如果其值小于“开始日”值,则这将通过&&评估

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

if (currentDayInNo <  scheduleStartDay) {
    currentDayInNo += DaysToNo.size();
}
if(scheduleEndDay
更新了我的问题以使其更清楚,如果有java内置库实现此功能,知道什么?更新了我的问题以使其更清楚,知道什么是java内置库实现此功能?更新了我的问题以使其更清楚,知道什么是java内置库实现此功能?我认为第二个条件是根据前面的评论,我们必须增加currentDatInNo而不是StartDatinno。事实上,它应该是currentDatInNo,修正了我的问题,使其更清楚,如果有java内置库来实现这一点,我们应该知道什么?我想第二个条件是,我们必须增加currentDatInNo而不是StartDatinno,根据前面的评论.事实上,它应该是currentDatInNo,修正了