时间合并、周一至周五
有需求如下:
选中连续时间,显示时做合并所选内容。如:
选中:周一、周二、周三、周四、周五
显示:周一至周五
选中:周一、周二、周三、周五、周六
显示:周一至周三,周五至周六
以此类推
代码如下:
public static String getNewOpenDay(String openDay) {// 排序规则Map<String, Integer> map = new HashMap<>();map.put("周一", 1);map.put("周二", 2);map.put("周三", 3);map.put("周四", 4);map.put("周五", 5);map.put("周六", 6);map.put("周日", 7);String[] days = openDay.split("、");StringBuilder sb = new StringBuilder();// 是否连续int continuous = 0;// 是否开始节点 如 周一至周五 中的 周一 || 周一, 周三至周六 中的 周三 和 周一boolean first = true;// 定义新数组,重新排序,可按自己的规则进行排序String[] attr = new String[7];for (int i = 0; i < days.length; i++) {attr[map.get(days[i]) - 1] = days[i];}// 遍历新数组拼接字符串for (int i = 0; i < attr.length; i++) {// 当前字符串不为空if (StringUtils.isNotBlank(attr[i])) {// 判断是否是开始节点if (first) {sb.append(attr[i]);// 赋值后不是开始节点first = false;// 连续值加1continuous++;} else {// 有连续值表示不是开始,有可能连续值是1if (continuous > 0) {continuous++;}// 如果是最后一个时间,直接拼接,无需处理if (attr.length-1 == i) {sb.append("至").append(attr[i]);}}} else {// 判断当前字符串是否已拼接过,若没拼接过,无需处理if (StringUtils.isNotBlank(sb.toString())) {// 判断是否是开始节点,若是开始节点也无需处理if (!first) {// 判断是否是连续值,若是连续值,且大于1,则取前一位数值if (continuous > 1) {sb.append("至").append(attr[i-1]);}// 若不是最后一个时间,以逗号分割,重置开始节点值,连续值if (attr.length-1 != i) {sb.append(",");first = true;continuous = 0;}}}}}if (sb.toString().endsWith(",")) {return sb.substring(0, sb.toString().length()-1);} else {return sb.toString();}}public static void main(String[] args) {String a = "周六、周日、周四";System.out.println(getNewOpenDay(a));String b = "周一、周二、周三、周四、周五";System.out.println(getNewOpenDay(b));String c = "周一";System.out.println(getNewOpenDay(c));String d = "周一、周二、周四、周五、周六";System.out.println(getNewOpenDay(d));String e = "周一、周二、周四、周五、周日";System.out.println(getNewOpenDay(e));String f = "周日、周一、周二";System.out.println(getNewOpenDay(f));String g = "周日、周五、周一、周三";System.out.println(getNewOpenDay(g));}
输出结果:
周四,周六至周日
周一至周五
周一
周一至周二,周四至周六
周一至周二,周四至周五,周日
周一至周二,周日
周一,周三,周五,周日
时间合并、周一至周五相关推荐
- 取周一时间_周一到周五不好化妆?别着急,5款夏日通勤裸妆的教程来了!
化妆已经成为了许多女生每天的必修课,好的妆容不仅可以让自己显得有精神还可以增添自己的自信.但是每天早上起来,能够化妆的时间又不多,所以只好每天都重复同一样妆容,快速便捷,时间久了就渐渐感觉了无生趣. ...
- oracle 获取每周五,oracle如何根据传入的时间参数,得到这个参数所在周的周一至周五的日期和星期数...
select '1' AS XQBH,to_char(trunc(to_date('2020-06-28' ,'yyyy-mm-dd'),'iw'),'yyyy-mm-dd') AS RQ,'星期一' ...
- 自由主义者的周一和周五
最近一直想写些类似的东西,总结一下,但真正动笔,是由一个视频引起的.今天无意中看到这样一段的视频(周一上班的熊样.周五下班的鸟样)分明是打工者周一到周五的缩影,非常有趣.但是,Think about ...
- mysql5好还是8_定投扣款哪天好?周一还是周五,月末还是月初?(定投知识8)...
结论:无论是周一还是周五,月末还是月初,经过较长周期的定投以后,收益率基本相同,差别非常微小. 分析:数据回测验证.定投中证500指数基金,投资周期为2009年11月2日至2019年3月4日.分别选择 ...
- SpringBoot中cron表达式周一到周五运行设置
SpringBoot中cron表达式周一到周五运行设置 源码级别解答 源码级别解答 周一到周五其实设置的是1-5(可以设置英文MON-FRI),并不是其它文章说的2-6,以下是两个不同版本的sprin ...
- switch语句实现周一到周五输出weekday;周六周天weekend C语言
switch语句实现周一到周五输出weekday;周六周天weekend C语言 #include <stdio.h> #include "stdafx.h" //sw ...
- 用python根据当前星期,输出周一到周五的励志语句
用python根据当前星期,输出周一到周五的励志语句 import datetime #导入datetime函数 mot = ['今天星期一: \n坚持下去不是因为我很坚强,而是因为我别无选择.', ...
- 关于Cron表达式中的周一至周五正确的配置
前言:最近有个业务需求,需要做一个任务调度,其核心之一就是Cron表达式. 需求:做一个计划,由计划内容生成任务,要求在周一至周五08:00点生成任务. 表达式:0 0 8 ? * 1,2,3,4,5 ...
- 根据今天时星期几,输出当天工作安排,学校安排周一到周五学习编程,周六上机实验,周日休息 例如: 键盘上输入4,控制台输出学习编程
//根据今天时星期几,输出当天工作安排,学校安排周一到周五学习编程,周六上机实验,周日休息 例如: 键盘上输入4,控制台输出学习编程 import java.util.Scanner; public ...
最新文章
- RedHat的yum源修改为CentOS的yum源
- 2021年高考成绩查询湖北状元,2021年湖北高考状元多少分,今年湖北高考状元资料名单...
- SpringBoot+JsTree实现在编辑时能选择树形结构并获取选中的ID
- 「Python」 ElementTree模块解析xml文件,建议小白阅读全文
- windows 10 systeminfo命令查看系统信息
- 朴素贝叶斯分类器python_朴素贝叶斯分类器及Python实现
- svn服务的安装与设置 .
- 【Level 08】U07 Mixed Feelings L4 Learning by heart
- 让ubuntu开机快一点:记开机出现Waiting for network configuration...
- 【081】◀▶ HTML CSS 学习
- 如何解决您的虚拟主机中有文件触发了安全防护报警规则,可能存在webshell网页木马...
- 局域网的分类:以太网、令牌环网、FDDI、ATM、WLAN
- 佳能Canon imageCLASS MF4830d 打印机驱动
- 使用shareSDK调用QQ好友分享遇到的问题
- java + jfreechart + itextpdf创建折线图饼图并导出为pdf
- “功能”之后,网约车决胜“服务”
- 读后感:黑衣人---走出软件作坊:三五个人十来条枪 如何成为开发正规军(三十四)
- 【计算方法】实验一:python使用二分法、不动点法、牛顿法求根
- Jackson 化学发光免疫印迹解决方案
- ElementUI 的tree结构实现目录的单选操作
热门文章
- 指标类数据标准如何定义?
- android 仿微信通知栏
- SeekBar实现实现进度提示随thum移动,自定义View
- FTP 错误 550 Failed to change directory 记录贴
- python 实现经纬度与大地2000坐标的转换
- qrcodejs2二维码生成js
- 通过gcloud创建Google Kubernetes Engine(GKE)并通过kubectl访问
- BLOB/TEXT column ‘sup_content‘ used in key specification without a key length
- js读取excel导出json文件
- Base64转码过程