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

总结

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

相关文章

  • 详解Java中多进程编程的实现

    详解Java中多进程编程的实现

    这篇文章主要介绍了详解Java中多进程编程的实现,和多线程一样,多进程同样是实现并发的一种方式,需要的朋友可以参考下
    2015-11-11
  • javaweb判断当前请求是否为移动设备访问的方法

    javaweb判断当前请求是否为移动设备访问的方法

    这篇文章主要为大家详细介绍了javaweb判断当前请求是否为移动设备访问的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Java Fluent Mybatis 项目工程化与常规操作详解流程篇 下

    Java Fluent Mybatis 项目工程化与常规操作详解流程篇 下

    Java中常用的ORM框架主要是mybatis, hibernate, JPA等框架。国内又以Mybatis用的多,基于mybatis上的增强框架,又有mybatis plus和TK mybatis等。今天我们介绍一个新的mybatis增强框架 fluent mybatis关于项目工程化与常规操作流程
    2021-10-10
  • Spring Boot Thymeleaf实现国际化的方法详解

    Spring Boot Thymeleaf实现国际化的方法详解

    这篇文章主要给大家介绍了关于Spring Boot Thymeleaf实现国际化的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-10-10
  • 探讨Java语言中那些修饰符

    探讨Java语言中那些修饰符

    在java中常见的修饰符有:abstract(抽象的)、static(静态的)、public(公共的)、protected(受保护的)、private(私有的)、synchronized(同步的)、native(本地的)、transient(暂时的)、volatile(易失的)、final(不可改变的)。对java语言修饰符感兴趣的朋友一起看看吧
    2016-11-11
  • 使用RedisAtomicLong优化性能问题

    使用RedisAtomicLong优化性能问题

    这篇文章主要介绍了使用RedisAtomicLong优化性能问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 基于SpringBoot和Hutool工具包实现验证码的案例

    基于SpringBoot和Hutool工具包实现验证码的案例

    随着安全性的要求越来越高,目前项目中很多都会使用验证码,只要涉及到登录,绝大多数都会有验证的要求,验证码的形式也是多种多样,更复杂的图形验证码和行为验证码已经成为了更流行的趋势,本文给大家介绍了SpringBoot Hutool实现验证码的案例,需要的朋友可以参考下
    2024-05-05
  • springboot -sse -flux 服务器推送消息的方法

    springboot -sse -flux 服务器推送消息的方法

    这篇文章主要介绍了springboot -sse -flux 服务器推送消息的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-11-11
  • Java实现简易五子棋小游戏

    Java实现简易五子棋小游戏

    这篇文章主要为大家详细介绍了Java实现简易五子棋小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • 一文搞懂SpringBoot如何利用@Async实现异步调用

    一文搞懂SpringBoot如何利用@Async实现异步调用

    异步调用几乎是处理高并发,解决性能问题常用的手段,如何开启异步调用?SpringBoot中提供了非常简单的方式,就是一个注解@Async。今天我们重新认识一下@Async,以及注意事项
    2022-09-09

最新评论