使用时段算法实现

获取一个长度为7的boolean[] 数组根据值展示使用时段:

使用时段:“【周几】【时间】可用”,如“周一到周五全天可用”,“周一、周二14:00-22:00可用”

周几

  1. 若是大于等于3个连续的日期,则“【开始天】至【结束天】”,如“周一至周三”
    • 周一、周日不算连续
  2. 若小于3个连续的日期,或者日期是间断的,则将所有天通过分隔符“、”按顺序拼接,如“周一、周三、周四”,“周二、周三”,“周一、周六、周日”
public String getOperateTimeStr() {
        String timeRange = "";
        String successiveDay = "";
        if (getWeekRange() != null) {
            int successiveStart = 0;
            int successiveEnd;
            for (int i = 0; i < getWeekRange().length; i++) {
                if (!getWeekRange()[i]) {
                    successiveEnd = i - 1;
                    if (successiveDay.length() >= 3) {
                        timeRange += "周" + getWeekNumForChinese(successiveStart) + "至周" + getWeekNumForChinese(successiveEnd);
                        successiveDay = "";
                    } else {
                        switch (successiveDay.length()) {
                            case 0:
                                break;
                            case 1:
                                if (timeRange.length() == 0) {
                                    timeRange += "周" + getWeekNumForChinese(successiveEnd);
                                } else {
                                    timeRange += "、周" + getWeekNumForChinese(successiveEnd);
                                }
                                break;
                            case 2:
                                if (timeRange.length() == 0) {
                                    timeRange += "周" + getWeekNumForChinese(successiveStart) + "、周" + getWeekNumForChinese(successiveEnd);
                                } else {
                                    timeRange += "、周" + getWeekNumForChinese(successiveStart) + "、周" + getWeekNumForChinese(successiveEnd);
                                }
                                break;
                        }
                        successiveDay = "";
                    }
                    successiveStart = i + 1;
                } else {
                    successiveDay += getWeekNumForChinese(i);
                    if (i == getWeekRange().length - 1) {
                        if (timeRange.length() > 0) {
                            timeRange += "、周" + getWeekNumForChinese(successiveStart) + "至周" + getWeekNumForChinese(getWeekRange().length - 1);
                        } else {
                            timeRange = "周" + getWeekNumForChinese(successiveStart) + "至周" + getWeekNumForChinese(getWeekRange().length - 1);
                        }
                    }
                }
            }
//            if (getWorkTime() == null) {
//                timeRange += " 全天可用";
//            } else {
//                String startTime = getWorkTime().startHour + ":" + (getWorkTime().startMinute > 10 ? getWorkTime().startMinute : "0" + getWorkTime().startMinute);
//                String endTime = getWorkTime().endHour + ":" + (getWorkTime().endMinute > 10 ? getWorkTime().endMinute : "0" + getWorkTime().endMinute);
//                timeRange += " " + startTime + "-" + endTime + " 可用";
//            }
        }
        return (timeRange + " " + getBusinessDay());
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值