自定义周次开始时间,结束时间,计算一年中的周次(非自然周次),从数据库中读取时间,然后以此时间为开始时间,并且为第一周周一的开始时刻,每过7天 累计为一周,同时算出周次的开始日期和结束日期。

package com.bimforest.ems.common.utils;import com.bimforest.ems.pojo.DateWeekly;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;/*** @author youngyanjun* @date 2019-11-19 14:47*/
@Slf4j
@Data
public class WeeklyUtil {/*** 通过开始时间和当前时间获取目前所处的周次** @return*///public static List<DateWeekly> getWeekly(String sDateTime, String eDateTime) {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");Date d1 = null;Date d2 = null;try {d1 = format.parse(sDateTime);d2 = format.parse(eDateTime);//每周天数(7天)long week = 24 * 60 * 60 * 1000 * 7;long day = 24 * 60 * 60 * 1000;//毫秒mslong diff = d2.getTime() + 1 - d1.getTime() + 1;if (diff <= 0) {return null;}//毫秒转天long diffDays = diff / (24 * 60 * 60 * 1000);//创建所有周次及开始结束时间listList<DateWeekly> list = new ArrayList<>();//共多少周次if (diffDays > 0 & diffDays < 7) {}long endWeekly = diffDays / 7 == 0 ? (diffDays / 7) : (diffDays / 7) + 1;if (diffDays > 0 & diffDays < 7) {endWeekly = 1;}for (int i = 1; i <= endWeekly; i++) {DateWeekly dateWeekly = new DateWeekly();//当前周次dateWeekly.setWeekly(i + 1);//当前周次结束日期(当前周次开始日期为 开始日期 = 周次*周+ 开始日期)long s = i * week;long e = (i - 1) * week;long edt = s + d1.getTime() - day;//当前周次结束日期(结束日期为 =  开始日期 + 周次 * 周 )long sdt = e + d1.getTime();String sdate = format.format(sdt);String edate = format.format(edt);//将得到是数据放入listdateWeekly.setWeekly(i);dateWeekly.setSDate(sdate);dateWeekly.setEDate(edate);list.add(i - 1, dateWeekly);}return list;} catch (Exception e) {e.printStackTrace();}return null;}
}

运行结果


运行结果!

自定义周次开始时间,结束时间,计算一年中的周次(非自然周次)相关推荐

  1. Calendar获取当前季度、月、周的开始时间结束时间

    java在很多场合下会根据当前时间计算本季度的开始时间结束时间.当前月份的开始时间结束时间.当前周的开始时间以及结束时间.我这里整理下一个时间加工类,作为工具类记录下. 一.获取计算相关时间的方法如下 ...

  2. java 根据时间范围自动算间隔_Java根据开始时间结束时间计算时间间隔 x年x月x日...

    最近项目中有这样的需求:根据租赁开始时间租赁结束时间计算租期x年x月x日, 相同的需求还有根据出生日期计算年龄等等...... 例如:开始日期 2020年7月24日  结束日期 2021年9月3日   ...

  3. 在线计算一周的开始结束时间

    在线计算一周的开始结束时间 在线计算一周的开始结束时间 平年365天,即52周余一天,闰年366天,即52周余二天,如果按周次表来计的话,当年的第一周如果不是在星期日开始的话,也就是说,这一年的第一周 ...

  4. JAVA 给定开始时间和结束时间计算天数

    1.给定开始时间和结束时间计算天数 package com.ceshi;import java.text.ParseException; import java.text.SimpleDateForm ...

  5. 帆软报表如何实现开始时间-结束时间-时间间隔(时,日、周、月、年)分段显示数据

    帆软报表如何实现开始时间-结束时间-时间间隔(时,日.周.月.年)分段显示数据 1.效果展示 时间间隔:全部.时.日.周.月.年 按小时 按日 按周 按月 按年 如果这是你想要的,可以继续查看如何实现 ...

  6. 开始时间结束时间参数不能为空,时间间隔不能超过90天

    Controller层 public AjaxResult export(@RequestBody IncomingAccountQuery incomingAccountQuery){//判断时间是 ...

  7. oracle时间开始结束时间,Oracle日期周详解以及周开始结束时间计算

    1 Oracle中周相关知识描述 1.1 日期格式化函数 TO_CHAR(X [,FORMAT]):将X按FORMAT格式转换成字符串.X是一个日期,FOR 1 Oracle中周相关知识描述 1.1 ...

  8. Oracle日期周详解以及周开始结束时间计算

    1 ORACLE中周相关知识描述 1.1           日期格式化函数 TO_CHAR(X [,FORMAT]):将X按FORMAT格式转换成字符串.X是一个日期,FORMAT是一个规定了X采用 ...

  9. 根据开始时间结束时间,计算工作日的天数

    整理了一下,感觉第三方的接口不是很稳定,欢迎提供新的接口地址 import java.io.BufferedReader; import java.io.InputStream; import jav ...

最新文章

  1. spell_picture第三版终于摆脱了命令行的操作
  2. Hibernate:不容易理解的 lock 和 merge
  3. GridFS读文件代码示例
  4. [BUUCTF-pwn]——picoctf_2018_buffer overflow 1
  5. Asp.net生成工作流、审批流的解决方案
  6. 字符串的全排列JAVA实现
  7. 光驱安装centos7系统过程_centos7可以ping通外网_可以ping通内网其他机器_但是其他机器就是ping不通centos7_太神奇了---linux工作笔记041
  8. 内部办公网与IDC机房的GRE隧道配置实践
  9. 20190815 On Java8 第五章 控制流
  10. gridview求和
  11. excel两列数据对比找不同_25岁约基奇和25岁姚明得分数据对比,结果和想象中不同...
  12. 将mov格式转换成mp4的方法及设置
  13. 基于改进U-GAT-IT的人像手绘风格转换系统(源码&教程)
  14. 华为公司软件编程规范
  15. 【数据湖Hudi-8-Hudi集成Flink-入门】
  16. AE圣诞树(html版本),免费
  17. power bi -分组累计求和
  18. MySQL数据库提权
  19. 网络测试软件smartest,AGILENT-93K的混合信号测试解决方案
  20. ∑西格玛,求和符号,表示累项相加

热门文章

  1. docker onlyoffice使用教程
  2. 苹果手机怎么清理缓存_苹果手机卡顿,这才是清理缓存的正确方法,瞬间流畅好几倍...
  3. 深入理解微信小程序的底层框架(一)
  4. 论文查找和筛选的实用技能
  5. java 去掉pdf文字_java – 使用pdfbox从pdf中删除不可见的文本
  6. 一篇文章搞懂STL中的空间配置器allocator(原创,多图,易懂)
  7. 蓝牙耳机哪款通话效果好?蓝牙耳机通话效果最好排名
  8. java常用设计模式7——责任链模式
  9. 将uniAPP项目导入到微信开发者工具中保姆级教程
  10. 对账系统(一)初识对账系统