根据数据库查询返回值,返回时间段
来源:互联网 发布:dnf游戏数据异常严重吗 编辑:程序博客网 时间:2024/06/05 20:57
在工作的业务中,碰到过,根据时间区间比如说2小时,12小时,24小时,返回不同的开始时间和结束时间,具体来说,就是,当筛选两小时的时候,返回一天的00:00:00—>13:59:59 ,14:00:00–>15:59:59,….22:00:00–>23:59:59 ;当筛选12小时,返回一天的08:00:00–>20:00:00,20:00:00–>08:00:00 ,当筛选24小时的时候,返回一天的00:00:00–>23:59:59
现在就写一个公共类来解决这个问题。
public class BatteryUtil { public static void main(String[] args) { int stepNumber = 0; int colSize = 1 ;//12 2 1 1 int interval = 7;//2 12 24 7 30 for (int i = 0; i <= 6; i++) { String testTime = "2017-08-1"+i; for (int col = 1; col <= colSize; col++) { stepNumber = stepNumber + interval; String [] times = getOriginalInterval(testTime,stepNumber,interval); System.out.println("startDate: "+times[0]+" , endDate: "+times[1]); } } }
public static String[] getOriginalInterval(String testTime, int number, int interval) { String[] resultTime = new String[2]; double multiple = number / 24; if (number % 24 != 0) { multiple = multiple + 1; } // number > 24 if (multiple > 1) { //**-------------开始时间-------------**// double dVal = number - 24 * (multiple - 1);// {"2小时":[2,4,6,8,10,..],"12小时":[]} int iVal = (int) dVal; String startTime = ""; if(interval==12){ int before = (number / 12) % 2; StringBuilder tempStr = new StringBuilder(); if(before == 1){ startTime =tempStr.append(testTime).append(" ").append("08:00:00").toString(); }else{ startTime = tempStr.append(testTime).append(" ").append("20:00:00").toString(); } }else{ int before = iVal - interval; //"2小时":[0,2,4,6,8,10,12...],"12小时":[0,12] StringBuilder tempStr = new StringBuilder(); if(before <10){ startTime = tempStr.append(testTime).append(" ").append("0").append(before).append(":00:00").toString(); }else{ startTime = tempStr.append(testTime).append(" ").append(before).append(":00:00").toString(); } } //**--------------结束时间------------------**// String endTime = ""; if(interval == 12){ int newNumber = (number / 12) % 2; StringBuilder tempEle = new StringBuilder(); if(newNumber == 1){ endTime = tempEle.append(testTime).append(" ").append("20:00:00").toString(); }else{ testTime = nextDay(testTime);//往后推一天 endTime = tempEle.append(testTime).append(" ").append("08:00:00").toString(); } }else{ int newIval = iVal - 1;// "2小时":[1,3,5,7,..],"12小时":[11,23] StringBuilder tempEle = new StringBuilder(); if(newIval <10){ endTime = tempEle.append(testTime).append(" ").append("0").append(newIval) .append(":00:00").toString(); }else{ if(interval == 24){ //固定 endTime = tempEle.append(testTime).append(" ").append("23:59:59").toString(); }else{ endTime = tempEle.append(testTime).append(" ").append(newIval) .append(":59:59").toString(); } } } resultTime[0] = startTime; resultTime[1] = endTime; // number <= 24 }else{ //**--------------开始时间----------------------**// String startTime = ""; if(interval == 12){ int before = (number / 12) % 2; StringBuilder tempStr = new StringBuilder(); if(before == 1){ startTime =tempStr.append(testTime).append(" ").append("08:00:00").toString(); }else{ startTime = tempStr.append(testTime).append(" ").append("20:00:00").toString(); } }else{ int before = number - interval;//"2小时":[0,2,4,6,8,10..],"12小时":[] StringBuilder tempStr = new StringBuilder(); if(before <10){ startTime = tempStr.append(testTime).append(" ").append("0").append(before) .append(":00:00").toString(); }else{ startTime = tempStr.append(testTime).append(" ").append(before).append(":00:00").toString(); } } //**------------------结束时间---------------------------**// String endTime = ""; if(interval == 12){ int newNumber = (number / 12) % 2; StringBuilder tempEle = new StringBuilder(); if(newNumber == 1){ endTime = tempEle.append(testTime).append(" ").append("20:00:00").toString(); }else{ testTime = nextDay(testTime);//往后推一天 endTime = tempEle.append(testTime).append(" ").append("08:00:00").toString(); } }else{ //间隔向前-1 int newNumber = number -1;//{"2小时":[1,3,5,7,9,11,..],"12小时":[]} StringBuilder tempEle = new StringBuilder(); if(newNumber <10 ){ endTime = tempEle.append(testTime).append(" ").append("0").append(newNumber) .append(":59:59").toString(); }else{ endTime = tempEle.append(testTime).append(" ").append(newNumber).append(":59:59").toString(); } } resultTime[0] = startTime; resultTime[1] = endTime; } return resultTime; } /** * 将当前的日期往后推一天 * @param testTime * @return * @throws ParseException */ private static String nextDay(String testTime) { try { Date date = new SimpleDateFormat("yyyy-MM-dd").parse(testTime); Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.DATE, 1); date = cal.getTime(); testTime = new SimpleDateFormat("yyyy-MM-dd").format(date); return testTime; } catch (ParseException e) { e.printStackTrace(); throw new RuntimeException("格式化日期出错",e); } }}
阅读全文
0 0
- 根据数据库查询返回值,返回时间段
- node里面连接mongodb查询返回一天的数据(根据时间段查询)
- 根据时间段,返回时间段的工作小时数
- 求助:SQL 数据库根据条件返回值
- 根据条件查询返回DataTable
- 数据库查询返回类型
- C# 数据库查询取返回值
- laravel 判断查询数据库返回值
- mysql数据库当中根据时间段来查询数据
- ajax根据ID查询数据库并返回Json格式数据返回js,使用append显示到页面。判断json值为[]或者[[]]的问题。
- CAS 登录成功后返回的值实现根据不同的条件查询不同的表或者数据库
- 查询数据库后返回Iterator
- python查询数据库结果返回
- python3 apistar 创建web api 根据前端用户输入返回数据库查询结果
- 根据时间段去做查询条件
- GetLastError返回值查询
- 查询返回值
- GetLastError返回值查询
- 小练习:Two Sum
- C++:创建线程初试
- 小练习:vaild number
- C++:override和final
- 如何编写静态库
- 根据数据库查询返回值,返回时间段
- C++:类和对象
- 函数指针
- main函数的参数:argc和argv
- mac osx Apache 服务器架设
- C++:栈(stack)的模板类实现
- 校园地图
- 安装VMware Tools:Ubuntu
- 链表