1. public static TimeStartAndEndVo parseTime(String startTime, String endTime, String timeType) {
    2. // 1、处理发布时间
    3. TimeStartAndEndVo vo = new TimeStartAndEndVo();
    4. if (StringUtils.isNotEmpty(timeType)) {
    5. switch (timeType) {
    6. case "week":
    7. vo = TimePeriodToNodeUtil.switchToTime(startTime, endTime, -169);
    8. vo.setDayNum(7L);
    9. break;
    10. case "month":
    11. vo = TimePeriodToNodeUtil.switchToTime(startTime, endTime, -721);
    12. vo.setDayNum(30L);
    13. break;
    14. case "threeMonths":
    15. vo = TimePeriodToNodeUtil.switchToTime(startTime, endTime, -2161);
    16. vo.setDayNum(90L);
    17. break;
    18. case "halfYear":
    19. vo = TimePeriodToNodeUtil.switchToTime(startTime, endTime, -4321);
    20. vo.setDayNum(180L);
    21. break;
    22. case "year":
    23. vo = TimePeriodToNodeUtil.switchToTime(startTime, endTime, -8641);
    24. vo.setDayNum(360L);
    25. break;
    26. case "custom":
    27. vo.setStartTime(startTime);
    28. vo.setEndTime(endTime);
    29. SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    30. long nd = 1000*24*60*60;//一天的毫秒数
    31. //计算两个时间的毫秒时间差异
    32. long diff = 0L;
    33. try {
    34. diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime();
    35. } catch (ParseException e) {
    36. e.printStackTrace();
    37. }
    38. long day = diff/nd + 1;
    39. vo.setDayNum(day);
    40. break;
    41. default:
    42. break;
    43. }
    44. }
    45. return vo;
    46. }
    47. public static TimeStartAndEndVo switchToTime(String startTime, String endTime, int diff) {
    48. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    49. Calendar calendar = Calendar.getInstance();
    50. calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
    51. calendar.set(Calendar.HOUR_OF_DAY,24);
    52. calendar.add(Calendar.SECOND,-1);
    53. endTime = df.format(calendar.getTime());
    54. calendar.set(Calendar.HOUR_OF_DAY,diff);
    55. calendar.add(Calendar.SECOND,1);
    56. calendar.add(Calendar.DATE,1);
    57. startTime = df.format(calendar.getTime());
    58. TimeStartAndEndVo vo = new TimeStartAndEndVo();
    59. vo.setEndTime(endTime);
    60. vo.setStartTime(startTime);
    61. return vo;
    62. }