一个善良的码农 2017-02-19 13:01 采纳率: 0%
浏览 3611
已结题

java计算一段时间内星期一出现的次数

一段时间的格式为:年-月-日(2016-01-01)

比如开始日期为2016-01-01,结束时间为2016-01-31
求这段时间内星期一出现的次数,支持跨年,闰年,闰月
应该是用Calendar 但是我不会写
求大神教我怎么写

  • 写回答

8条回答 默认 最新

  • 小幸运1213034643 2017-02-23 03:15
    关注

    String startDate = "2016-02-01";//开始日期
    String endDate = "2017-10-31"; //结束日期

        DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");        
        Date bdate;
        int count = 0; //星期一的次数
        try {
            while(true){
                bdate = format1.parse(startDate);
                if(bdate.getTime() <= format1.parse(endDate).getTime()){
                    Calendar cal = Calendar.getInstance();
                    cal.setTime(bdate);
                    if(cal.get(Calendar.DAY_OF_WEEK)==Calendar.MONDAY){
                        count++;
                    }
                    //后一天
                    DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
                    Date ldate = df.parse(startDate);
                    startDate = df.format(
                            new Date(ldate.getTime() + 1 * 24 * 60 * 60 * 1000))
                            .toString();
                }else{
                    break;
                }
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
        System.out.println("星期一次数:"+count);
    
    评论

报告相同问题?