获取近一周,近两周,本月,上个月

Posted 恋红尘,醉江山

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取近一周,近两周,本月,上个月相关的知识,希望对你有一定的参考价值。

    @RequestMapping(value = "/date", method = RequestMethod.GET)
    public String agentHouseClick(DataRangRequest dataRangRequest,Model model){
        
        String[] days = dataRangService.computeTimeRange(dataRangRequest.getTimeRange());
		model.addAttribute("days",days);
        return "xxx";
    }
	public interface DataRangService {
  
      String[] computeTimeRange(Integer timeRange);
   
    }

	@Service
	public class DataRangServiceImpl implements DataRangService {
		@Override
		public String[] computeTimeRange(Integer timeRange){
			Calendar startTime = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00"));
			Calendar endTime = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00"));
			if(timeRange==1){   //近一周
				startTime.add(Calendar.DATE,-7);
				return computeDate(startTime,endTime);
			}else if(timeRange==2){ //近二周
				startTime.add(Calendar.DATE,-14);
				return computeDate(startTime,endTime);
			}else if(timeRange==3){ //本月
				startTime.set(Calendar.DAY_OF_MONTH,1);
				return computeDate(startTime,endTime);
			}else if(timeRange==4){ //上个月
				startTime.add(Calendar.MONTH,-1);
				startTime.set(Calendar.DAY_OF_MONTH,1);
				endTime.set(Calendar.DAY_OF_MONTH,0);
				return computeDate(startTime,endTime);
			}
			return null;
		}
		private String[] computeDate(Calendar startTime,Calendar endTime){
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			String day = sdf.format(startTime.getTime());
			List<String> days = new LinkedList<>();
			days.add(day);
			do{
				startTime.add(Calendar.DAY_OF_YEAR,1);
				days.add(sdf.format(startTime.getTime()));
			}while(!(startTime.get(Calendar.YEAR)==endTime.get(Calendar.YEAR)&&startTime.get(Calendar.MONTH)
			==endTime.get(Calendar.MONTH)&&startTime.get(Calendar.DAY_OF_MONTH)==endTime.get(Calendar.DAY_OF_MONTH)));
			String[] dayArr = days.toArray(new String[0]);
			return dayArr;
		}
	}

  

以上是关于获取近一周,近两周,本月,上个月的主要内容,如果未能解决你的问题,请参考以下文章

java获取本月开始时间和结束时间上个月第一天和最后一天的时间以及当前日期往前推一周一个月

PHP下获取上个月、下个月、本月的日期

获取从本月起往前5个月的年月

Java获取本月最后一天问题

PHP获取本月第一天和上个月第一天的日期

MySql查询最近一个月,一周,一天