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