首先谢谢这两个博客的分享
Java 将一段时间以周、月、季分割
Java将日期拆分成按周或月时间段统计
然后这两个算法执行后的结果都有一些小的问题,或者可以说并不是我想要的结果,我要做的需求就是调用钉钉的接口,获取公司员工的打卡:

传入的是一个时间段,并且时间长度有要求,所以这里对时间进行了一个分割,下面是算法:

 // 将时间按照星期分割public List<String> doDateType(String startDate, String endDate) throws ParseException {List<String> resultlist = new ArrayList<String>();List<String> listWeekOrMonth = new ArrayList<String>();DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");DateFormat olddateFormat = new SimpleDateFormat("yyyy-MM-dd 00:00:00");DateFormat newdateFormat = new SimpleDateFormat("yyyy-MM-dd 23:59:59");Date sDate = dateFormat.parse(startDate);Calendar sCalendar = Calendar.getInstance();sCalendar.setFirstDayOfWeek(Calendar.MONDAY);sCalendar.setTime(sDate);Date eDate = dateFormat.parse(endDate);Calendar eCalendar = Calendar.getInstance();eCalendar.setFirstDayOfWeek(Calendar.MONDAY);eCalendar.setTime(eDate);boolean bool = true;while (sCalendar.getTime().getTime() < eCalendar.getTime().getTime()) {int week1 = sCalendar.get(Calendar.DAY_OF_WEEK) - 1;// 周几if (bool || week1 == 0 || week1 == 1) {if (week1 == 0) {// 周日sCalendar.set(Calendar.HOUR_OF_DAY, 23);sCalendar.set(Calendar.MINUTE, 59);sCalendar.set(Calendar.SECOND, 59);String time = newdateFormat.format(sCalendar.getTime());listWeekOrMonth.add(time);} else {sCalendar.set(Calendar.HOUR_OF_DAY, 0);sCalendar.set(Calendar.MINUTE, 0);sCalendar.set(Calendar.SECOND, 0);String time = dateFormat.format(sCalendar.getTime());listWeekOrMonth.add(time);}bool = false;}sCalendar.add(Calendar.DAY_OF_MONTH, 1);// 加一天}Calendar newCalendar = eCalendar;listWeekOrMonth.add(olddateFormat.format(newCalendar.getTime()));if (listWeekOrMonth.size() % 2 != 0) {listWeekOrMonth.add(dateFormat.format(eCalendar.getTime()));}for (int g = 0; g < listWeekOrMonth.size(); g += 2) {String startTime = listWeekOrMonth.get(g);String endTime = listWeekOrMonth.get(g + 1);String time = startTime + "@" + endTime;resultlist.add(time);}return resultlist;}

时间分割算法,Java将一段时间按星期来分割相关推荐

  1. JAVA将一段时间 按周、月、季度、半年、年进行分割

    JAVA将一段时间 按周.月.季度.半年.年进行分割. 有时候开发常常会传入一个开始时间和结束时间,将两个时间进行分割,返回一个时间的集合以下是我们小组成员所书写的实体类 package com.ai ...

  2. java 将一段时间分割为两个连续的时间

    eg: 20180901  -- 20180930 ->>>> 20180901-20180915  && 20180916-20180930 /*** 获取两 ...

  3. Java 将一段时间以周、月、季分割

    本文所有使用的时间戳均为毫秒级 得到的集合区间也是毫秒级的时间戳 按周分割时间 代码如下: @Test public void timeSplitByWeek() {// 1.开始时间 2019-06 ...

  4. php 间隔时间执行任务,PHP间隔一段时间执行代码的方法

    PHP间隔一段时间执行代码的方法 发布于 2015-11-16 18:26:46 | 230 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pr ...

  5. 分水岭算法java,OpenCV 学习笔记 04 深度估计与分割——GrabCut算法与分水岭算法...

    1 使用普通摄像头进行深度估计 1.1 深度估计原理 这里会用到几何学中的极几何(Epipolar Geometry),它属于立体视觉(stereo vision)几何学,立体视觉是计算机视觉的一个分 ...

  6. java如何计算时间天数差,java计算两个时间相差天数的方法汇总

    问题描述: 输入:两个日期 输出:两个日期相差的天数 具体代码实现 方法1: 通过calendar类的日期比较.注意:这里需要考虑一下: 日期是跨年份的,如一个是2012年,一个是2015年的 年份是 ...

  7. linux现代时间轮算法,linux2.6定时器的时间轮算法分析

    1.Overview 常用的定时器实现算法有两种:红黑树和时间轮(timing wheel). 在Linux2.6的代码中,kernel/timer.c文件实现了一个通用定时器机制,使用的是时间轮算法 ...

  8. 计算机运行一段时间黑屏,电脑隔一段时间黑屏

    随着科技的提升,现在基本每个家庭都会有电脑,对于电脑的使用不是很多朋友都熟悉,有时候电脑会隔一段时间就黑屏,如何处理?下面为大家介绍电脑隔一段时间黑屏的解决步骤. 电脑隔一段时间黑屏 步骤1.可能的原 ...

  9. java 给定一段时间 按周、月分组

    需求 网上找了一下 大部分都是用Calendar做的  下方Calendar实现按月分组 需要引入包: <dependency><groupId>org.apache.comm ...

最新文章

  1. java读取mysql配置文件_一文读懂 MySQL 主从复制读写分离
  2. javascript时间处理
  3. linux线程同步(2)-条件变量
  4. android推送接口,推送API
  5. python爬虫之selenium,谷歌无头浏览器
  6. python生成随机码_python生成随机验证码(中文验证码)示例
  7. Kubernetes入门——Kubernetes工作原理及使用
  8. php自动抓取文章图片,从文章中提取图片,把图片保存到本地,自动提取缩略图...
  9. css里的符号含义【串联选择器】和【后代选择器】
  10. 《Android游戏开发详解》一2.2 设置开发机器
  11. Android开发学习——基础学习
  12. 高德地图显示多个气泡_arcgis api 4.x for js 地图加载多个气泡窗口展示(附源码下载)...
  13. java.awt Robot 自动化测试 与 KeyEvent 常用按键
  14. crystal 分组计算记录行数_SPL 分组优化技巧
  15. qq一键登录 android,QQ帐号通Android全新登场:一键快捷登录腾讯应用
  16. IT服务管理流程控制主要绩效指标有哪些?
  17. php安全上传图片,PHP安全上传图片的方法
  18. AOSP build 系统简介
  19. ajax高级程序设计_javascript高级程序设计核心知识总结
  20. realme支持鸿蒙系统,骁龙888+首批搭载安卓12,realme真我GT真香售价2499元起

热门文章

  1. java网课|内部类
  2. thymeleaf模板引擎: org.xml.sax.SAXParseException: 在实体引用中, 实体名称必须紧跟在 '' 后面。
  3. CVE-2014-1767
  4. VUE打印 每页顶部添加一个二维码
  5. X Lossless Decoder for mac(XLD无损音频转码软件)
  6. 第十四届蓝桥杯第一期模拟赛试题与题解 C++
  7. WinEdt编译提示pdf文件打不开,Cannot Run pdf
  8. MOGRT替换视频,图像,照片及LOGO?如何替换PR动态图形模板中的图片视频素材
  9. (2022)Springboot+vue3项目开发前后端分离书法图书管理Coun
  10. OFFICE 制作邀请函