第一步 先根据当前日期时间 计算出本周的开始时间与结束日期

第二步 判断当前日期大于等于本周开始日期,并且当前日期小于等于本周结束日期,

就把本周开始日期当做条件计算出当前日期是第几周

// 周跨月也是如此, 每个月有多少周,是根据每月有几个星期一来计算的…(以2019-4-29 – 2019-5-5周为例,周一是4月29号 星期天为5与5号,周一在4月那这个周跨月,算四月的第5周)

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

Date ast = new Date();//当前日期时间

Calendar cal = Calendar.getInstance(); //先根据当前日期时间计算出本周的-

开始时间,与结束时间

cal.setTime(ast);

// 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了

int dayWeek = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天

if (1 == dayWeek) {

cal.add(Calendar.DAY_OF_MONTH, -1);

}

// System.out.println(“要计算日期为:” + sdf.format(cal.getTime())); // 输出要计算日期

// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一

cal.setFirstDayOfWeek(Calendar.MONDAY);

// 获得当前日期是一个星期的第几天

int day = cal.get(Calendar.DAY_OF_WEEK);

// 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值

cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);

String imptimeBegin = sdf.format(cal.getTime());

// 所在周星期一的日期:" + imptimeBegin);

cal.add(Calendar.DATE, 6);

String imptimeEnd = sdf.format(cal.getTime());

// “所在周星期日的日期:” + imptimeEnd);

String currentTime = sdf.format(ast);

Date start= sdf.parse(imptimeBegin);

Date end= sdf.parse(imptimeEnd);

Date current= sdf.parse(currentTime);

Calendar date=Calendar.getInstance();//当前日期时间,是本月第几周

date.setFirstDayOfWeek(Calendar.MONDAY);//设置周以星期一开始

date.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);//设置当前日期是星期几 设置星期一

date.setMinimalDaysInFirstWeek(7);//

if (start.getTime() <=current.getTime() && end.getTime() >= current.getTime()) {

date.setTime(start);//判断当前日期大于等于本周开始日期,并且当前日期小于等于本周结束日期,就把本周开始日期当做条件计算出当前日期是第几周

}

date.setTimeZone(TimeZone.getTimeZone("GMT+8"));

int week = date.get(Calendar.WEEK_OF_MONTH);//获取到当前时间是第几周, 与跨月周

java计算今天是今年的第几周_java calendar类根据当前日期时间,计算当前日期在当前月是第几周,与周跨月问题,...相关推荐

  1. javaSE (十七)Date、SimpleDateFormat、Calendar类的方法(计算在这个世界上生活多少天、显示今夕何年何月、判断闰年还是平年)

    1.Date.SimpleDateFormat类计算在这个世界上生活多少天: Date类的构造方法:Date().Date(long date) Date类的常用方法:void setTime(lon ...

  2. 测你现在活了多少天,计算从出生到现在的天数,运用Calendar类

    计算你从出生到现在一共活了多少天,可运用Calendar类来操作 也可用Date类来实现:链接在此 用Calendar类实现的代码如下: import java.text.ParseException ...

  3. java calendar赋值_Java calendar类学习笔记

    Java Calendar类 calendar类是abstract类,实际使用时实现特定的子类对象 创建一个代表当前日期的Calendar对象 Calendar ss=Calendar.getlnst ...

  4. 计算时间间隔分钟_九个小技巧,玩转Excel的时间计算

    凡是涉及到数据分析的岗位,都离不开Excel.凡是要用到Excel的工作,都绕不开时间计算. 但其实时间数据的计算并不难,学会这些小技巧,再也不会被庞大的数据弄得心烦意乱了. ✦替换为时间格式 当你输 ...

  5. wpf datagrid 计算两个列的差值_天体到达指定方位角的时间计算

    接上一篇天体的升起.中天.落下时间 - 且听风吟的文章 - 知乎,天体的升起落下和中天是满足一些特殊条件,对于一般情况,如指定一个方位角,要求其到达的时间,我们也可以计算出来. 可以先判断一个天体的方 ...

  6. java calendar类_Java Calendar类

    Calendar类概述 /*** java.util.Calendar类:是一个日历类 * Calendar类是一个抽象类,里边提供了很多操作日历字段的方法 * 如:YEAR. MONTH. DAY ...

  7. java calendar 设置小时_Java Calendar.set 方法设置时间的问题

    因项目需要,需要遍历一年中的其中几个月,获得每个月的用户数量.  变量有:开始时间--startDate,结束时间--endDate. 逻辑很简单:获取到开始时间的月份和结束时间的月份,然后得到月份差 ...

  8. java calendar 设置小时_Java Calendar类的时间操作

    Java Calendar 类时间操作,这也许是创建日历和管理最简单的一个方案,示范代码很简单,演示了获取时间,日期时间的累加和累减,以及比较. 注意事项: Calendar 的 month 从 0 ...

  9. java qq好友上线 好友面板更新如何实现_Java实现类MSN、QQ好友上线通知界面

    // Test.java //主界面,其中只有一个button,当点击时调用Popup在右下角显示像MSN和QQ一样的popup界面. import org.eclipse.swt.SWT; impo ...

最新文章

  1. 2021年中宁中学高考成绩查询,2021宁夏中卫市重点高中排名
  2. 从一个数组中找出最接近目标_LeetCode每日一题 | 转变数组后最接近目标值的数组和...
  3. 消息队列 应用场景 解析
  4. LIMIT M,N分页性能优化方案
  5. local service system账户_systemd.service学习和使用总结
  6. JAVA-三目运算符返回值规则
  7. python两个字典合并、相同key值保留_Python两个字典key相同的值组成新字典?
  8. chrome下方的copeascURL(cmd) 复制的内容,在windows的cmd中不可用的原因
  9. 【EmmyLua插件】Rider无法跳转lua文件解决
  10. 内卷机器下的自我救赎
  11. 什么是全文搜索引擎?
  12. Docker - Docker Image及Image命令详解
  13. 关于uniapp cheneckbox复选框不显示对号的问题
  14. 华清远见-重庆中心-JAVA基础阶段技术总结/知识点梳理/个人总结/关于JAVA技术的解析(看法)/面试题解析
  15. 因为计算机丢失vrender,3DMAX打开文件时显示缺少dll解决方案
  16. 复习DOS及批处理命令
  17. 打上花火歌词-罗马音
  18. 你是人间的四月天---林徽因
  19. 使用java中Scanner,Randon,ArrayList完成一个随机点名系统
  20. MySQL学习笔记一之基础架构

热门文章

  1. study mysql
  2. CVPR 2022 Oral|OGM-GE:基于动态梯度调节的平衡化多模态学习
  3. 本地管理多个git账号
  4. Navicat导出ncx文件并解密连接密码
  5. 小白学习之路,网络编程(上)
  6. nop sled 空操作雪橇
  7. 李峋 爱心代码 点燃我温暖我
  8. Redis —— SpringBoot工程下的GeoHash工具类
  9. Linux的文件操作
  10. [2021 icas]PPG-BASED SINGING VOICE CONVERSION WITH ADVERSARIAL REPRESENTATION LEARNING