java 获取周次_[Java] 获取本月周次和日期时间段信息
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] 获取本月周次和日期时间段信息相关推荐
- [Java] 获取本月周次和日期时间段信息
package com.wdcloud.monitoring.common;import java.text.SimpleDateFormat; import java.util.ArrayList; ...
- java扫描包下类_实现获取扫描指定包路径下的jar文件或class文件JarPojoHandler类示例代码...
通过JarPojoHandler类实现了扫描指定路径下如何获取所有的JAR包或class文件,可以对特定class对象文件筛选过滤等,具体代码如下所示import java.io.File;@b@im ...
- java 图片宽高_[Java]获取图片高和宽
通过javax.imageio.ImageIO类中的read()函数读取的图片,存放在类java.awt.image.BufferedImage类中.调用BufferedImage类中的getWidt ...
- java 获取私有方法_如何获取java类里的私有方法
展开全部 利用java的反射机制,以下代码:public class Main { private void fun(){ 32313133353236313431303231363533e4b893 ...
- java得到相对路径_[Java]JAVA获取相对路径问题的解决
1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: C:xyz est.txt 代表了test.txt文件的绝对路径.http://www. ...
- java 内存泄露 书籍_[Java教程]一次艰难的内存泄露排查,BeanUtils 的锅
[Java教程]一次艰难的内存泄露排查,BeanUtils 的锅 0 2020-10-29 18:24:42 现象 通过jstat -gcutil pid 5000 ,发现fgc次数很多而且频繁,此时 ...
- java 历遍 类_[Java] 遍历指定包名下所有的类(支持jar) | 学步园
项目需要,仅做记录. 支持包名下的子包名遍历,并使用Annotation(内注)来过滤一些不必要的内部类,提高命中精度. 通过Thread.currentThread().getContextClas ...
- f12获取网页文本_怎么获取网页源代码中的文件?
展开全部 易语言如何取网页源码: 1.首先,运行"易语言"主程序,弹出"新建工程32313133353236313431303231363533e4b893e5b19e3 ...
- java 基础面试 英文_[Java面试] 面试java基础总结大全
原标题:[Java面试] 面试java基础总结大全 基础知识: 1.JVM.JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性. ...
最新文章
- python开源库推荐_推荐5个值得关注的Python开源项目
- 电脑底下的任务栏不见了_拿到一台新的Windows电脑,我会做什么?
- 当我以为这是最后一个Bug,改完就能提交了的时候
- 千万不要用efficientnet做bone net
- RabbitMQ(二) | 消息可靠性(消息确认机制、消息持久化、消息重试机制)
- 紫光视频平台服务器系统,紫光展锐打造操作系统生态,赋能万物互联智能时代...
- 【调剂】 济南大学机器学习及其应用课题组拟接收计算机硕士(调剂及第一志愿)报考-预宣传...
- 万象优鲜生鲜配送系统源码
- 如何在Excel中使用公式将生日自动转换成星座?
- 哪些机型适配了android11,coloros11适配机型_coloros11支持机型有哪些
- 能力配不上位置,管理只能“累死”
- Ubuntu进不去图形化界面的解决方案
- RHEL8 新特征及使用方法
- 设计原则之【单一职责原则】
- 从工厂到五星级写字楼,我从5K涨到了12K,中间只隔了一个python
- 信息安全入门必备认证-Security+
- jsp mysql花店_基于jsp的花店网站-JavaEE实现花店网站 - java项目源码
- IIS 配置好了,网站打开一片空白
- 统信UOS安装Nvidia显卡驱动教程
- ffmpeg 和 SDL 教程
热门文章
- react-bmap 安装于使用
- 数组转集合、集合转数组、字符串数组与int型、long型数组等的转换以及排序问题
- CF 383B Volcanoes
- C语言 找出数组中重复数字出现最多的数
- IDEA 插件JRebel下Debug 不进入断点
- 消费升级背景下零食行业发展报告_撬动2万亿零食市场,天猫618带动零食品牌上半年最大增长...
- IDEA一键启动多个服务
- SpringBoot+Redis哨兵模式
- JavaScript对象(一)
- 机器视觉在电子半导体行业的应用 ——倒装焊技术不可或缺的“锐眼”