packagecom.wdcloud.monitoring.common;importjava.text.SimpleDateFormat;importjava.util.ArrayList;importjava.util.Calendar;importjava.util.Date;importjava.util.List;importcom.wdcloud.monitoring.Model.WeekInfoModel;public classDateUtils {//是否打印日志

private static boolean isLog = false;/*** 获取本月周次和日期时间段信息

*

*@return

*/

public static ListgetThisMonthWeekDate() {

SimpleDateFormat format= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

List list = new ArrayList();//1 获取本月的第一天

Date firstDayOfMonth =getFirstDayOfMonth();

Calendar firstDayOfMonthCal=Calendar.getInstance();

firstDayOfMonthCal.setFirstDayOfWeek(Calendar.MONDAY);

firstDayOfMonthCal.setTime(firstDayOfMonth);//2 获取本月第一周第一天

Date firstWeekFirstDay =getFirstDayOfFirstWeekOfMonth();

Calendar firstWeekFirstDayCal=Calendar.getInstance();

firstWeekFirstDayCal.setFirstDayOfWeek(Calendar.MONDAY);

firstWeekFirstDayCal.setTime(firstWeekFirstDay);//3 获取本次周期起止时间

Date sDate = null;//本月第一周第一天

Date eDate = null;//本月最后一周最后一天

Calendar sCal =Calendar.getInstance();

Calendar eCal=Calendar.getInstance();

sCal.setFirstDayOfWeek(Calendar.MONDAY);

sCal.setFirstDayOfWeek(Calendar.MONDAY);//获取本月第一天是周几

int weekDay = firstDayOfMonthCal.get(Calendar.DAY_OF_WEEK) - 1;//如果是周末,起始时间就是本月第一周第一天//否则起始时间就是本月第一周第一天 倒退7天

if (weekDay == 6 || weekDay == 0 || weekDay == 1) {//周六或周天

sDate =firstWeekFirstDay;

}else{

firstWeekFirstDayCal.getTime();

firstWeekFirstDayCal.add(Calendar.DATE,-7);

sDate=firstWeekFirstDayCal.getTime();

}

sCal.setTime(sDate);//结束时间是起始时间+34天(5周)

eCal.setTime(sDate);

eDate=eCal.getTime();

eCal.add(Calendar.DATE,34);

eDate=eCal.getTime();

Date cDate= newDate();if (cDate.getTime()

eDate=cDate;

}if(isLog) {

System.out.println(" 本月统计起止时间是:" + format.format(sDate) + " 到 "

+format.format(eDate));

System.out

.println("-------------------------------------------------------------------------------");

}//4 循环得到周次信息

for (int i = 0; i < 5; i++) {//循环5周次

WeekInfoModel model = newWeekInfoModel();

Calendar endTime=Calendar.getInstance();

endTime.setFirstDayOfWeek(Calendar.MONDAY);

endTime.setTime(sDate);

endTime.set(Calendar.HOUR_OF_DAY,23);

endTime.set(Calendar.MINUTE,59);

endTime.set(Calendar.SECOND,59);

endTime.add(Calendar.DATE,6);

model.setIndexOfWeek(i+ 1);

model.setStartDateOfWeek(sDate);

model.setEndDateOfWeek(endTime.getTime());

Date currDate= newDate();//如果当前时间在某个周次内

if (sDate.getTime() currDate.getTime()) {

model.setEndDateOfWeek(currDate);if(isLog) {

System.out.println(" 本月第" + (i + 1) + "周起止时间是:"

+ format.format(sDate) + " 到 "

+format.format(currDate));

}

list.add(model);break;

}if(isLog) {

System.out.println(" 本月第" + (i + 1) + "周起止时间是:"

+ format.format(sDate) + " 到 "

+format.format(endTime.getTime()));

}

list.add(model);

sCal.add(Calendar.DATE,7);

sDate=sCal.getTime();

}returnlist;

}//获取本月第一天

public staticDate getFirstDayOfMonth() {

Calendar now=Calendar.getInstance();//Date date = new Date(2015 - 1900, 12 - 1, 1);//now.setTime(date);

now.set(Calendar.DATE, now.getActualMinimum(Calendar.DATE));

now.set(Calendar.HOUR_OF_DAY,0);

now.set(Calendar.MINUTE,0);

now.set(Calendar.SECOND,0);returnnow.getTime();

}//获取本月第一周第一天

public staticDate getFirstDayOfFirstWeekOfMonth() {

Calendar now=Calendar.getInstance();

now.setFirstDayOfWeek(Calendar.MONDAY);

now.setTime(getFirstDayOfMonth());int i = 1;while (now.get(Calendar.DAY_OF_WEEK) !=Calendar.MONDAY) {

now.set(Calendar.DAY_OF_MONTH, i++);//设置这个月的星期1 为几号

}

Date firstMonday= now.getTime();//取得日期和时间

String dtStr = new SimpleDateFormat("YYYY-MM-dd").format(firstMonday);//格式化日期

if(isLog) {

System.out

.println("-------------------------------------------------------------------------------");

System.out.println(" 本月第一周第一天是:" +dtStr);

System.out

.println("-------------------------------------------------------------------------------");

}returnnow.getTime();

}/*** 获取本周周次和日期时间段信息

*

*@return

*/

public staticWeekInfoModel getThisWeekDate() {

WeekInfoModel model= newWeekInfoModel();

SimpleDateFormat df= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//根据今天的时间获取本周属于本月的第几周

Calendar now =Calendar.getInstance();

now.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);//获取本周一的日期

int wom =now.get(Calendar.WEEK_OF_MONTH);

model.setIndexOfWeek(wom);//根据今天的时间获取本周的开始时间

now.set(Calendar.HOUR_OF_DAY, 0);

now.set(Calendar.MINUTE,0);

now.set(Calendar.SECOND,0);

now.set(Calendar.MILLISECOND,0);

System.out.println("********" + now.get(Calendar.YEAR) + "年"

+ ((now.get(Calendar.MONTH)) + 1) + "月第" + wom + "周星期一的日期是:"

+df.format(now.getTime()));

model.setStartDateOfWeek(now.getTime());//根据今天的时间获取本周的结束时间

now.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);

now.add(Calendar.WEEK_OF_YEAR,1);

now.set(Calendar.HOUR_OF_DAY,23);

now.set(Calendar.MINUTE,59);

now.set(Calendar.SECOND,59);

now.set(Calendar.MILLISECOND,999);

System.out.println("********" + now.get(Calendar.YEAR) + "年"

+ ((now.get(Calendar.MONTH)) + 1) + "月第" + wom + "周星期天的日期是:"

+df.format(now.getTime()));

model.setEndDateOfWeek(now.getTime());returnmodel;

}

}

java 获取周次_[Java] 获取本月周次和日期时间段信息相关推荐

  1. [Java] 获取本月周次和日期时间段信息

    package com.wdcloud.monitoring.common;import java.text.SimpleDateFormat; import java.util.ArrayList; ...

  2. java扫描包下类_实现获取扫描指定包路径下的jar文件或class文件JarPojoHandler类示例代码...

    通过JarPojoHandler类实现了扫描指定路径下如何获取所有的JAR包或class文件,可以对特定class对象文件筛选过滤等,具体代码如下所示import java.io.File;@b@im ...

  3. java 图片宽高_[Java]获取图片高和宽

    通过javax.imageio.ImageIO类中的read()函数读取的图片,存放在类java.awt.image.BufferedImage类中.调用BufferedImage类中的getWidt ...

  4. java 获取私有方法_如何获取java类里的私有方法

    展开全部 利用java的反射机制,以下代码:public class Main { private void fun(){ 32313133353236313431303231363533e4b893 ...

  5. java得到相对路径_[Java]JAVA获取相对路径问题的解决

    1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: C:xyz est.txt 代表了test.txt文件的绝对路径.http://www. ...

  6. java 内存泄露 书籍_[Java教程]一次艰难的内存泄露排查,BeanUtils 的锅

    [Java教程]一次艰难的内存泄露排查,BeanUtils 的锅 0 2020-10-29 18:24:42 现象 通过jstat -gcutil pid 5000 ,发现fgc次数很多而且频繁,此时 ...

  7. java 历遍 类_[Java] 遍历指定包名下所有的类(支持jar) | 学步园

    项目需要,仅做记录. 支持包名下的子包名遍历,并使用Annotation(内注)来过滤一些不必要的内部类,提高命中精度. 通过Thread.currentThread().getContextClas ...

  8. f12获取网页文本_怎么获取网页源代码中的文件?

    展开全部 易语言如何取网页源码: 1.首先,运行"易语言"主程序,弹出"新建工程32313133353236313431303231363533e4b893e5b19e3 ...

  9. java 基础面试 英文_[Java面试] 面试java基础总结大全

    原标题:[Java面试] 面试java基础总结大全 基础知识: 1.JVM.JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性. ...

最新文章

  1. python开源库推荐_推荐5个值得关注的Python开源项目
  2. 电脑底下的任务栏不见了_拿到一台新的Windows电脑,我会做什么?
  3. 当我以为这是最后一个Bug,改完就能提交了的时候
  4. 千万不要用efficientnet做bone net
  5. RabbitMQ(二) | 消息可靠性(消息确认机制、消息持久化、消息重试机制)
  6. 紫光视频平台服务器系统,紫光展锐打造操作系统生态,赋能万物互联智能时代...
  7. 【调剂】 济南大学机器学习及其应用课题组拟接收计算机硕士(调剂及第一志愿)报考-预宣传...
  8. 万象优鲜生鲜配送系统源码
  9. 如何在Excel中使用公式将生日自动转换成星座?
  10. 哪些机型适配了android11,coloros11适配机型_coloros11支持机型有哪些
  11. 能力配不上位置,管理只能“累死”
  12. Ubuntu进不去图形化界面的解决方案
  13. RHEL8 新特征及使用方法
  14. 设计原则之【单一职责原则】
  15. 从工厂到五星级写字楼,我从5K涨到了12K,中间只隔了一个python
  16. 信息安全入门必备认证-Security+
  17. jsp mysql花店_基于jsp的花店网站-JavaEE实现花店网站 - java项目源码
  18. IIS 配置好了,网站打开一片空白
  19. 统信UOS安装Nvidia显卡驱动教程
  20. ffmpeg 和 SDL 教程

热门文章

  1. react-bmap 安装于使用
  2. 数组转集合、集合转数组、字符串数组与int型、long型数组等的转换以及排序问题
  3. CF 383B Volcanoes
  4. C语言 找出数组中重复数字出现最多的数
  5. IDEA 插件JRebel下Debug 不进入断点
  6. 消费升级背景下零食行业发展报告_撬动2万亿零食市场,天猫618带动零食品牌上半年最大增长...
  7. IDEA一键启动多个服务
  8. SpringBoot+Redis哨兵模式
  9. JavaScript对象(一)
  10. 机器视觉在电子半导体行业的应用 ——倒装焊技术不可或缺的“锐眼”