Java Caledar类(日历类)如何判断本周周数
作者:远离bug,珍爱头发
这篇文章主要介绍了Java Caledar类(日历类)如何判断本周周数问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
Java Caledar类判断本周周数
思路
- 首先创建SimpleDateFormat将时间格式化
- 创建Calendar类,因为是抽象类,所以不能用new方法,而是使用getInstance。
- 外国人认为每周的第一天是周日,中国人认为每周的第一天是周一。所以要先调用setFirstDayOfWeek方法将周一设置为每周的第一天
- 首先获取本地时间计算当前周数:使用Calendar 类中的WEEK_OF_YEAR
- 获取目标日期计算周数
- 得到的周数是int类型,所以进行数值比较
解决问题
- 打印本周账单、判断活动的期限等。
- 获取当前周数后,可以遍历存放日期数组那些天是当前周
实现
public static void main(String[] args) throws Exception{ //格式化时间 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); //新建日历类 Calendar c=Calendar.getInstance(); //设置周一为第一天 c.setFirstDayOfWeek(Calendar.MONDAY); //新建格式化今天的String类日期 String todayStr=sdf.format(new Date()); //转为Date类型 Date today=sdf.parse(todayStr); //设置日历时间 c.setTime(today); //获取当前周数 int currentWeekNum=c.get(Calendar.WEEK_OF_YEAR); System.out.println(currentWeekNum); //要查询的日期 String str="2022-3-28"; Date date=sdf.parse(str); c.setTime(date); //查询日期的周数 int selWeekNum=c.get(Calendar.WEEK_OF_YEAR); System.out.println(selWeekNum); if(currentWeekNum==selWeekNum){ System.out.println(str+"是当前周的日期"); }else{ System.out.println(str+"不是当前周的日期"); } }
Calendar关于周的用法
创建对象
Calendar calendar = Calendar.getInstance();
获取指定年份中有多少周
Calendar calendar = Calendar.getInstance();
传入参数,年份,例如:2023
calendar.set(Calendar.YEAR, 2023);
获得周数
int week = calendar.getWeeksInWeekYear();
如果需要指定一周的开始时间可以 用函数
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
获取指定周,指定年份,返回月份以及日期
```java >//创建对象 >Calendar calendar = Calendar.getInstance(); >// 设置年份 >calendar.set(Calendar.YEAR,2023); >// 设置,比如 获取周一的日期 calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); // 一年中的第几周 calendar.set(Calendar.WEEK_OF_YEAR,36); // 获得月份。需要+1.因为月份是从0开始的 int i = calendar.get((Calendar.MONTH))+1; System.out.println(i); // 获得那一周,周一的日期 System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
后续问题: 关于 如果1月1号为非星期一,那么定义这周为上一年的最后一周。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。