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

 更新时间:2024年06月05日 11:08:28   作者:远离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号为非星期一,那么定义这周为上一年的最后一周。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Mybatis实现动态排序方式

    Mybatis实现动态排序方式

    这篇文章主要介绍了Mybatis实现动态排序方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Java适配器模式之如何灵活应对不匹配的接口

    Java适配器模式之如何灵活应对不匹配的接口

    本文介绍了Java中的适配器模式,包括对象适配器模式和接口适配器模式,适配器模式通过将一个类的接口转换成客户期望的另一个接口,解决了不同接口之间的不兼容问题,它提高了系统的灵活性、复用性和解耦性,需要的朋友可以参考下
    2024-10-10
  • 使用java实现各种数据统计图(柱形图,饼图,折线图)

    使用java实现各种数据统计图(柱形图,饼图,折线图)

    用Jfree实现条形柱状图表,java代码实现。可经常用于报表的制作,代码自动生成后可以自由查看。可以自由配置图表的各个属性,用来达到自己的要求和目的。本文给大家介绍使用java实现各种数据统计图(柱形图,饼图,折线图),需要的朋友可以参考下
    2015-10-10
  • java高并发的线程中断的几种方式详解

    java高并发的线程中断的几种方式详解

    这篇文章主要介绍了Java线程中断机制几种方法及示例,向大家分享了这几种方法的介绍几代码示例,具有一定参考价值,需要的朋友可以了解下。
    2021-10-10
  • Java中的ArrayList.trimToSize()方法详解

    Java中的ArrayList.trimToSize()方法详解

    这篇文章主要介绍了Java中的ArrayList.trimToSize()方法详解,前几天看了Java ArrayList,没有明白trimToSize()这个方法是什么意思,所以看了一下源码并且debug一下自己的一个例子,明白了其中的含义,需要的朋友可以参考下
    2023-11-11
  • Spring Data MongoDB中实现自定义级联的方法详解

    Spring Data MongoDB中实现自定义级联的方法详解

    这篇文章主要给大家介绍了关于Spring Data MongoDB中实现自定义级联的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-11-11
  • hibernate 命名查询如何实现

    hibernate 命名查询如何实现

    Hibernate允许在映射文件中定义字符串形式的查询语句,这种查询方式成为命名查询,需要的朋友可以参考下
    2012-11-11
  • spring boot静态变量注入配置文件详解

    spring boot静态变量注入配置文件详解

    这篇文章主要为大家详细介绍了spring boot静态变量注入配置文件的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • 详解java 中的CAS与ABA

    详解java 中的CAS与ABA

    这篇文章主要介绍了java 中的CAS与ABA的相关资料,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-05-05
  • 如何利用grep-console插件使Intellij idea显示多颜色调试日志

    如何利用grep-console插件使Intellij idea显示多颜色调试日志

    这篇文章主要介绍了利用grep-console插件使Intellij idea显示多颜色调试日志,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05

最新评论