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号为非星期一,那么定义这周为上一年的最后一周。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
