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

    @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;
		}
	}

  

原文地址:https://www.cnblogs.com/likeyou1/p/8608493.html

时间: 2024-08-27 18:12:41

获取近一周,近两周,本月,上个月的相关文章

入职两周总结

已经入职两周了,慢慢开始熟悉了公司的业务与人员... 知道自己是被分配到了PAD组,刚开始入职第一周的时候还以为自己时做前端方向的工作,也跟着杨欣姐做了一些小bug的排除,由于自己业务不熟悉,所以速度比较慢.终于跟上以后才发现自己是被分配在PAD组中,下周可能就要接一些PAD组的正式任务了.公司用的是比较传统的架构,对前端的需求似乎不是特别大,感觉自己在学的VUE和NODE完全没有任何卵用...同时,公司使用的前端框架是ExtJS,PrototypeJS....相比较老旧的一些技术...怎么说呢

一下子两周过去了

时间过得真快,这两周在忙些什么,还是之前的微信服务号项目,啊,又是一个新的开始,大概在一周多之前,因为要实现一个小功能,是关于前端页面上的,他们建议我重新写一套前端页面,用vue. 其实内心有点拒绝的,毕竟项目的时间不多了,之前已经换过一次前端界面了,一开始没有规划好,整个项目难道又要重新开始一次了嘛???没办法,还是硬着头皮上了.因为旁边的两位都是会vue,而且都挺厉害的,在看了一个下午的vue文档和敲了一下基本 的例子之后,就开始上手做了,第一个页面是旁边的大佬帮我写的,是给我一个参考,后面

本两周学习总结

这两周主要再看源码,所以没什么好写的,但是绝大大多源码或者记录一些我觉得有意思的代码, 主要记录的有D3源码,date-fns,rx.js主要是需要后期看能不能看看源码,numjs,然后修改成两周更新一次,其他这样的更新其实也是保持新鲜感 this指向问题 function sumArgs() { return Array.prototype.reduce.call(arguments, (acc, val) => { return acc + val }, 0) } console.log(s

两周撸一个微信小程序

利益相关 无 说明 该小程序代码已开源,点击可查看源码,可随意 star.也可以先扫描下方的小程序码直接体验. 写在前面 前段时间写了一个简单的小程序 QuietWeather,源码在这里,具体实现相关可查看这篇文章:两天撸一个天气应用微信小程序.但是这个 小程序 和 QuietWeather 完全不是一个数量级的.so,该文章梳理内容会有那么一点儿多,想跳过的可以直接拉到最下面... 这里先上效果图,感兴趣的也可以 查看源码 .实际体验可扫描??上面的小程序码. 效果图 PC 开发者工具录制,

全栈的好处:七天和两周

郑昀 最后更新于2016/10/17 之前提到过『2007年年底,时任阿里巴巴和中国雅虎CTO的吴炯给我们提出针对股票舆情的情感趋势分析方向建议后,我们两周时间就完成了前后端的开发,迅速上线』,有的同学说哎呀是不是太快了点儿?光是收集语料,收集领域新词,训练和优化,都需要好久呢. 还有更快的呢. 08年12月13日,受到刘未鹏在 TopLanguage 组<一个整合的阅读共享方案>帖子的启发,我有了一个 memeTracker mashup 的思路.问了一下周围人的看法,大家竟然觉得这思路不靠

我的2015年读书计划,也是每两周读完一本书!

上周看到一篇文章,说Facebook CEO 马克·扎克伯给自己的2015年定下了一个新的挑战,每两周就要读完一本书(传送门:戳这里).想了一下,我自己也很久没看书了,所以今年要改变一下,给自己定一个和马克同样的计划,并且我也把这个计划公告天下,一方面激励我自己,另一方面希望大家监督我.鞭策我! 上周我开始了我的计划(博客今天才写),不过完整的26本(365天 ÷ 7天/周 ÷ 2周看完一本=26本书)书单,我还真的没能列出来,所以大家如果有好书推荐,请在评论里留言,我将感激不尽! 一.2015

mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法(摘录)

mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法分析总结: 话说有一文章表article,存储文章的添加文章的时间是add_time字段,该字段为int(5)类型的,现需要查询今天添加的文章总数并且按照时间从大到小排序,则查询语句如下: select * from `article` where date_format(from_UNIXTIME(`add_time`),'%Y-%m-%d') = date_format(now(),'%Y-%m-%d'); 或者: selec

如何两周达到150行Java程序的能力--part 1

面向对象程序先导课是体系化面向对象课程的重要组成部分,其目标是帮助那些有一定C语言基础,但对面向对象概念陌生,基本没碰过Java编程的同学.该课程设计为暑期选修课,因为没有其他课程,我们设计为现场训练性质的训练营课程,即课堂上基本上不会通过ppt来讲授Java语言语法和面向对象知识点,而是围绕准备好的任务,课堂现场让大家进行程序联系,并结合所练习的程序现场讲解涉及到的Java语言和面向对象概念,这是一种面向问题和学生接受情况的教学模式. 整个课程包括四次,一次四个小时,分别安排在周二和周五.每次

【日常学习】清明前后两周学练总结

要写关键路径,发现图论早已忘得一塌糊涂,悲哀之余,抓紧复习.翻高级本时又看见了前面的贪心,于是就又把贪心练了一下.写了几道比较老的题目,像是积木大赛.之后还突发奇想练了栈一类的.总之,这两周的练习相当凌乱.下面贴一下近期做过的几道题目吧. 表达式求值专项训练 codevs1750 加法表达式 (自带吐槽:直接用读入优化那样的getchar()读入 但是要注意读不了的时候返回值是-1 所以不能用"!" 另外最后一次读不下去要break直接加上) codevs2715 表达式运算 (自带吐

定时清理两周前的分区上的数据

DECLARE @NEW_P INT DECLARE @P INT SELECT @NEW_P=DATEPART(DAYOFYEAR,CONVERT(DATETIME,GETDATE())) DECLARE BOUNDARY_ID_PARTSCHEME_DAY CURSOR FOR --控制top的值控制清除的时间 SELECT TOP 339 SORV.boundary_id FROM sys.partition_schemes SPS LEFT JOIN sys.partition_rang