当前位置: 代码网 > it编程>编程语言>Java > Java Caledar类(日历类)如何判断本周周数

Java Caledar类(日历类)如何判断本周周数

2024年06月10日 Java 我要评论
java caledar类判断本周周数思路首先创建simpledateformat将时间格式化创建calendar类,因为是抽象类,所以不能用new方法,而是使用getinstance。外国人认为每周

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号为非星期一,那么定义这周为上一年的最后一周。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com