Java中一年有几周、周的计算

来源:互联网 发布:设置左键连击宏编程 编辑:程序博客网 时间:2024/06/04 17:52

一般情况下java中一年有52周。但52周总共只有52*7=364天。我们知道,平年是365天,闰年则是366天,如果一年只有52周的话,就会差1到2天。所以每过几年,就会出现一年有53周。

java中的周计算有个规则,当年的最后几天可能会被算入下一年的第一周

下面我们一起分析一个案例:
计算2017年12月31日是位于当年第几周:

        Calendar cal = Calendar.getInstance();        cal.setFirstDayOfWeek(Calendar.MONDAY);        cal.set(Calendar.YEAR, 2017);        cal.set(Calendar.MONTH, 11);        cal.set(Calendar.DATE, 31);        //53        System.out.println(cal.get(Calendar.WEEK_OF_YEAR));

2017年12月31日是位于当年第53周。
需要注意的是,java里面月份是从0开始的(0~11)。

再分析2017年1月1日的情况,你会发现2016年的最后6天加上2017年的第一天一起被算入了2017年的第一周

也就是说2017年的53周里面,第一周只有1天,后面52周恰好占满整年剩下的天数,这跟2017年是365天吻合。

1 0