获取某一天一周内所有的日期

//获取某一天一周内所有的日期
List<Object> list= getWeekDays(startTime,"yyyy-MM-dd",true);
listWeek=list;  



public static List<Object> getWeekDays(String date,String dateFormat,boolean isChina) throws ParseException{

        List<Object> list  = new ArrayList<Object>();
        Calendar c = Calendar.getInstance(Locale.CHINA);
        SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
        c.setTime(sdf.parse(date));
        int currentYear=c.get(Calendar.YEAR);
        int weekIndex = c.get(Calendar.WEEK_OF_YEAR);
        int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
        if(dayOfWeek==1&&isChina){
             c.add(Calendar.DAY_OF_MONTH,-1);
             String date_str = sdf.format(c.getTime());
             list=getWeekDays(date_str,dateFormat,isChina);
        }
        else{
            c.setWeekDate(currentYear, weekIndex, 1);
            for(int i=1;i<=7;i++){
                 c.add(Calendar.DATE, 1);
                 String date_str = sdf.format(c.getTime());
                 list.add(date_str);
            }
        }
        return list;

    }





//日期加减

DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); // 定义日期格式化的格式
String upStartTime = startTime;// 需要加减的字符串型日期
String upEndTime = endTime;
Date upStartDate = format.parse(upStartTime);// 把字符串转化成指定格式的日期
Date upEndDate = format.parse(upEndTime);// 把字符串转化成指定格式的日期


Calendar calendar_up = Calendar.getInstance(); // 使用Calendar日历类对日期进行加减
Calendar calendar_down = Calendar.getInstance();
calendar_up.setTime(upStartDate);// 计算周一日期
calendar_down.setTime(upEndDate);// 计算周末日期
//计算上一周下一周的开始日期和结束日期
if (modifyState.equals("t_up")) {
calendar_up.add(Calendar.DAY_OF_MONTH, -7);
calendar_down.add(Calendar.DAY_OF_MONTH, -7);
upStartDate = calendar_up.getTime();
upEndDate = calendar_down.getTime();
}
//计算上一周下一周的开始日期和结束日期
if (modifyState.equals("t_down")) {
calendar_up.add(Calendar.DAY_OF_MONTH, 7);
calendar_down.add(Calendar.DAY_OF_MONTH, 7);
upStartDate = calendar_up.getTime();
upEndDate = calendar_down.getTime();
}
startTime = format.format(upStartDate);
endTime = format.format(upEndDate);













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值