Java给定日期计算是第几周

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/didi7696/article/details/82897239
public static void main(String[] args) throws ClassNotFoundException,
            IOException, ParseException {
        // TODO Auto-generated method stub
        SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("请键入日期(如:2008-8-8):");
        String str = br.readLine();
        Date date = dateFormatter.parse(str);
        dateFormatter.applyPattern("D");//
        System.out.println("一年中的第几天:" + dateFormatter.format(date));

        dateFormatter.applyPattern("d");
        System.out.println("一个月中的第几天:" + dateFormatter.format(date));

        dateFormatter.applyPattern("w");
        System.out.println("一年中的第几周:" + dateFormatter.format(date));

        dateFormatter.applyPattern("W");
        System.out.println("一个月中的第几周:" + dateFormatter.format(date));

        dateFormatter.applyPattern("E");
        System.out.println("一个星期中的天数:" + dateFormatter.format(date));

        br.close();
    }

---------------------

本文来自 meihuiziaaaaaa 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/didi7696/article/details/82423349?utm_source=copy 

但是中国的人周日期和外国的总有区别这里提供一个返回国内周几日期的工具类可以返回国内正常是周几;



    /**java 获取月周  */
    public static Integer getweek(String mydata){
        
        Integer week=null;
        try {
            
            Calendar calendar = Calendar.getInstance();
            calendar.setFirstDayOfWeek(Calendar.MONDAY);





        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); //设置时间格式
        Calendar cal = Calendar.getInstance();
        Date time=sdf.parse(mydata);
        cal.setTime(time);

        //判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了
        int dayWeek = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
        if(1 == dayWeek) {
            cal.add(Calendar.DAY_OF_MONTH, -1);
        }
        cal.setFirstDayOfWeek(Calendar.MONDAY);//设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
        int day = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
        cal.add(Calendar.DATE, cal.getFirstDayOfWeek()-day);//根据日历的规则,给当前日期减去星期几与一个星期第一天的差值
        System.out.println("所在周星期一的日期:"+sdf.format(cal.getTime()));

            String date1=sdf.format(cal.getTime());
            Date time1=sdf.parse(date1);
            calendar.setTime(time1);
            int  week1=calendar.get(Calendar.WEEK_OF_YEAR);

        System.out.println(cal.getFirstDayOfWeek()+"-"+day+"+6="+(cal.getFirstDayOfWeek()-day+6));

        cal.add(Calendar.DATE, 6);
        System.out.println("所在周星期日的日期:"+sdf.format(cal.getTime()));

            String date2=sdf.format(cal.getTime());
            Date time2=sdf.parse(date2);
            calendar.setTime(time2);
            int week2 =calendar.get(Calendar.WEEK_OF_YEAR);


         week=(week1>=week2?week2:week1);

        }catch (Exception e){
            e.printStackTrace();
            logger.error("fairld!!!",e.fillInStackTrace());
            throw  new RuntimeException(e);
        }

        return week;
    }


猜你喜欢

转载自blog.csdn.net/didi7696/article/details/82897239