获取取当前日期为周几

1. 在获取星期几 Calendar.DAY_OF_WEEK – 1 的原因
Java中Calendar.DAY_OF_WEEK其实表示:一周中的第几天,所以他会受到 第一天是星期几 的影响。
有些地区以星期日作为一周的第一天,而有些地区以星期一作为一周的第一天,这2种情况是需要区分的。
看下表的返回值

星期日为一周的第一天 SUN(天) MON(一) TUE(二) WED(三) THU(四) FR(五)I SAT(六)
DAY_OF_WEEK返回值 1 2 3 4 5 6 7
星期一为一周的第一天 MON TUE WED THU FRI SAT SUN
DAY_OF_WEEK返回值 1 2 3 4 5 6 7

//获取当前日期为周几
    @Test
    public int fun() {

        Date date = new Date();

        Calendar calendar = Calendar.getInstance();

        calendar.setTime(date);

        int weekNum = 0;

        // 一周的第一天是否是星期天
        boolean weekDay = calendar.getFirstDayOfWeek() == Calendar.SUNDAY;

        if (weekDay) {
            weekNum = calendar.get(Calendar.DAY_OF_WEEK) - 1;
            if (weekNum == 0) {

                weekNum = 7;
            }
        }
        return weekNum;
    }

2. 在获取月份时,Calendar.MONTH + 1 的原因
Java中的月份遵循了罗马历中的规则:当时一年中的月份数量是不固定的,第一个月是JANUARY。而Java中Calendar.MONTH返回的数值其实是当前月距离第一个月有多少个月份的数值,JANUARY在Java中返回“0”,所以我们需要+1。


    @Test
    public void fun2(){
        
        Date date = new Date();

        Calendar instance = Calendar.getInstance();
        
        instance.setTime(date);

        int i = instance.get(Calendar.MONTH)+1;
        
        System.out.println(i);

    }

猜你喜欢

转载自blog.csdn.net/weixin_42210904/article/details/103859457