java后台中关于时间的转化——将秒转化成xx小时xx分钟xx秒

前面有写过篇文章,js中关于时间的转化——将秒/毫秒转化成xx小时xx分钟xx秒

后来将前台的处理改成了后台处理

用法如下:

        /*
		 * 初始化
		 */
		
		int totalTime = 259263;  //访问时长秒数
		String totalTimeStr = "";
		totalTimeStr = totalTime/3600 + "时" + (totalTime%3600)/60 + "分" + (totalTime%3600)%60 + "秒";

顺便贴出当时的后台方法

@Override
	public Map<String, Object> findInterfacePressureTestData(InterfaceInvokeLogVo interfaceInvokeLogVo) {
		/*
		 * 初始化
		 */
		int visitNum = 0;   //访问量
		int totalTime = 0;  //访问时长秒数
		int  max = 0;       //压力测试的最大响应时间
		
		//查询条件不足返回提示信息
		if (null == interfaceInvokeLogVo 
				|| (interfaceInvokeLogVo.getBeginInvokeStartTime() == null 
				|| interfaceInvokeLogVo.getEndInvokeStartTime() == null 
				|| interfaceInvokeLogVo.getTargetSys().equals("") 
				|| interfaceInvokeLogVo.getTargetSysInterface().equals(""))
				) {
			return ResultUtil.put(ConstantUtil.REQUEST_FAIL, ConstantUtil.QUERY_TERM_LACK, "");
		}else{
			//查询接口统计数据
			StatisticInterfacePressureTest statisticInterfacePressureTest = interfaceInvokeLogMapper.selectInterfacePressureTestData(interfaceInvokeLogVo);
			if (null != interfaceInvokeLogVo.getBeginInvokeStartTime() && null != interfaceInvokeLogVo.getEndInvokeStartTime()) {
				
				//时间减之后的结果是毫秒数
				totalTime = (int)((interfaceInvokeLogVo.getEndInvokeStartTime().getTime() - interfaceInvokeLogVo.getBeginInvokeStartTime().getTime())/1000);
				visitNum=Integer.parseInt(statisticInterfacePressureTest.getVisitNum());
				
				//查询的时间范围可能选的是同一个时间点
				if(totalTime != 0){
					statisticInterfacePressureTest.setAvgVisitAvgNum(""+visitNum/totalTime);
				}
				else{
					return ResultUtil.put(ConstantUtil.REQUEST_FAIL, ConstantUtil.QUERY_TERM_LACK, "");
				}
				
				//根据压力测试的统计数据才能查询接口响应区间表
				if (null != statisticInterfacePressureTest && null != statisticInterfacePressureTest.getMaxRespondTime() 
						&& !("".equals(statisticInterfacePressureTest.getMaxRespondTime()))) {
					/*
					 * 查询接口响应时间区间list
					 */
					List<StatisticRespondTime> list = new ArrayList<>();
					StatisticRespondTime item = null;
					max = Integer.parseInt(statisticInterfacePressureTest.getMaxRespondTime());
					
					int times = max/1000;     //区间表展示的区间次数
					int maxValue = 0;         //每个区间的最大值
					int minValue = 0;         //每个区间的最小值
					
					interfaceInvokeLogVo.setVisitNum(statisticInterfacePressureTest.getVisitNum());  //访问量:sql中计算某区间的访问量占比时会用到
					
					for(int i = 0; i <= times; i++)
					{
						maxValue = (i+1)*1000;
						minValue = i*1000;
						interfaceInvokeLogVo.setMaxValue(maxValue);
						interfaceInvokeLogVo.setMinValue(minValue);
						
						item= interfaceInvokeLogMapper.selectStatisticRespondTimeData(interfaceInvokeLogVo);
						if(null != item){
							if(i == times){
								item.setRespondTime(" >"+minValue+" ");
								list.add(item);
							}else{
								item.setRespondTime(minValue + " ~ "+maxValue + "ms");
								list.add(item);
							}
						}
					}
					statisticInterfacePressureTest.setRespondTimesData(list);
					/*
					 *为返回值封装起始时间 
					 */
					statisticInterfacePressureTest.setBeginInvokeStartTime(interfaceInvokeLogVo.getBeginInvokeStartTime());
					statisticInterfacePressureTest.setEndInvokeStartTime(interfaceInvokeLogVo.getEndInvokeStartTime());
					
					statisticInterfacePressureTest.setTotalTime(totalTime/3600 + "时" + (totalTime%3600)/60 + "分" + (totalTime%3600)%60 + "秒");
					statisticInterfacePressureTest.setInterfaceName(interfaceInvokeLogVo.getTargetSys() + "-" + interfaceInvokeLogVo.getTargetSysInterface());
				}
				//无访问量说明无数据
				if(statisticInterfacePressureTest.getVisitNum().equals("0")){
					return ResultUtil.put(ConstantUtil.REQUEST_SUCCESS, ConstantUtil.QUERY_NO_DATA, null);
				}
			}
			return ResultUtil.put(ConstantUtil.REQUEST_SUCCESS, "", statisticInterfacePressureTest);
		}
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值