当前时间往前推一小时,格式:2019-05-28 16:27:54

	public Resp2 getInAndOutParkingInfoByIsAdded() {
		Calendar cal = Calendar.getInstance();
		int y = cal.get(Calendar.YEAR);
		int m = cal.get(Calendar.MONTH) + 1;
		int d = cal.get(Calendar.DATE);
		int h = cal.get(Calendar.HOUR_OF_DAY);
		int mi = cal.get(Calendar.MINUTE);
		int s = cal.get(Calendar.SECOND);

		// 当h为0时,h算作23
		int h0;
		if (h != 0) {
			h0 = h - 1;
		} else {
			h0 = 23;
		}

		StringBuilder strB = new StringBuilder();
		StringBuilder strB0 = new StringBuilder();

		// 当h为0时,需要把时间拆分成零点之前和零点之后去查询
		String beforeZeroOClockStr = null;
		String afterZeroOClockStr = null;
		if (h != 0) {
			strB.append(y).append("-");
			if (m < 10) {
				strB.append("0").append(m);
			} else {
				strB.append(m);
			}
			strB.append("-");
			if (d < 10) {
				strB.append("0").append(d);
			} else {
				strB.append(d);
			}
			strB.append(" ");
			if (h < 10) {
				strB.append("0").append(h);
			} else {
				strB.append(h);
			}
			strB.append(":");
			if (mi < 10) {
				strB.append("0").append(mi);
			} else {
				strB.append(mi);
			}
			strB.append(":");
			if (s < 10) {
				strB.append("0").append(s);
			} else {
				strB.append(s);
			}
		} else {
			// 当h为0时把时间拆分成两个时间段来查询,~~-24:00,00:00-~~
			int y1 = y-1;
			int d1 = d - 1;
			int m1 = m - 1;
			int d28 = 28;
			int d29 =29;
			int d30 = 30;
			int d31 = 31;
			// 当前日期为1号时,需要做处理
			if (d1 != 0) {
				strB.append(y).append("-");
				if (m < 10) {
					strB.append("0").append(m);
				} else {
					strB.append(m);
				}
				strB.append("-");
				if (d1 < 10) {
					strB.append("0").append(d1);
				} else {
					strB.append(d1);
				}
				// 往前推一个小时,日期改为昨日
				beforeZeroOClockStr = strB.toString() + " 23:59:59";

				strB.delete(8, 10);
				if (d < 10) {
					strB.append("0").append(d);
				} else {
					strB.append(d);
				}
				afterZeroOClockStr = strB.toString() + " 00:00:01";
				strB.append(" ");
				if (h < 10) {
					strB.append("0").append(h);
				} else {
					strB.append(h);
				}
				strB.append(":");
				if (mi < 10) {
					strB.append("0").append(mi);
				} else {
					strB.append(mi);
				}
				strB.append(":");
				if (s < 10) {
					strB.append("0").append(s);
				} else {
					strB.append(s);
				}
			} else {
				if (m == 5 || m == 7 || m == 10 || m == 12) {
					strB.append(y).append("-");
					if (m1 < 10) {
						strB.append("0").append(m1);
					} else {
						strB.append(m1);
					}
					strB.append("-");
					strB.append(d30);
					// 往前推一个小时,日期改为昨日
					beforeZeroOClockStr = strB.toString() + " 23:59:59";
					String strM;
					if (m < 10) {
						strM = "0" + Integer.toString(m);
					} else {
						strM = Integer.toString(m);
					}
					strB.replace(5, 7, strM);
					strB.delete(8, 10);
					if (d < 10) {
						strB.append("0").append(d);
					} else {
						strB.append(d);
					}
					afterZeroOClockStr = strB.toString() + " 00:00:01";
					strB.append(" ");
					if (h < 10) {
						strB.append("0").append(h);
					} else {
						strB.append(h);
					}
					strB.append(":");
					if (mi < 10) {
						strB.append("0").append(mi);
					} else {
						strB.append(mi);
					}
					strB.append(":");
					if (s < 10) {
						strB.append("0").append(s);
					} else {
						strB.append(s);
					}
				} else if (m == 2 || m == 4 || m == 6 || m == 8 || m == 9 || m == 11) {
					strB.append(y).append("-");
					if (m1 < 10) {
						strB.append("0").append(m1);
					} else {
						strB.append(m1);
					}
					strB.append("-");
					strB.append(d31);
					// 往前推一个小时,日期改为昨日
					beforeZeroOClockStr = strB.toString() + " 23:59:59";

					String strM;
					if (m < 10) {
						strM = "0" + Integer.toString(m);
					} else {
						strM = Integer.toString(m);
					}
					strB.replace(5, 7, strM);
					strB.delete(8, 10);
					if (d < 10) {
						strB.append("0").append(d);
					} else {
						strB.append(d);
					}
					afterZeroOClockStr = strB.toString() + " 00:00:01";
					strB.append(" ");
					if (h < 10) {
						strB.append("0").append(h);
					} else {
						strB.append(h);
					}
					strB.append(":");
					if (mi < 10) {
						strB.append("0").append(mi);
					} else {
						strB.append(mi);
					}
					strB.append(":");
					if (s < 10) {
						strB.append("0").append(s);
					} else {
						strB.append(s);
					}
				} else if (m == 3) {
					strB.append(y).append("-");
					if (m1 < 10) {
						strB.append("0").append(m1);
					} else {
						strB.append(m1);
					}
					strB.append("-");
					if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) {
						strB.append(d29);
					} else {
						strB.append(d28);
					}	
					// 往前推一个小时,日期改为昨日
					beforeZeroOClockStr = strB.toString() + " 23:59:59";

					String strM;
					if (m < 10) {
						strM = "0" + Integer.toString(m);
					} else {
						strM = Integer.toString(m);
					}
					strB.replace(5, 7, strM);
					strB.delete(8, 10);
					if (d < 10) {
						strB.append("0").append(d);
					} else {
						strB.append(d);
					}
					afterZeroOClockStr = strB.toString() + " 00:00:01";
					strB.append(" ");
					if (h < 10) {
						strB.append("0").append(h);
					} else {
						strB.append(h);
					}
					strB.append(":");
					if (mi < 10) {
						strB.append("0").append(mi);
					} else {
						strB.append(mi);
					}
					strB.append(":");
					if (s < 10) {
						strB.append("0").append(s);
					} else {
						strB.append(s);
					}
				} else if(m == 1) {//一月份零点往前推一小时,年份要减1,月份要变为12,日为31
					strB.append(y1).append("-");
					strB.append("12");
					strB.append("-");
					strB.append("31");	
					// 往前推一个小时,日期改为昨日
					beforeZeroOClockStr = strB.toString() + " 23:59:59";

					String strM;
					if (m < 10) {
						strM = "0" + Integer.toString(m);
					} else {
						strM = Integer.toString(m);
					}
					strB.replace(0, 4, Integer.toString(y));
					strB.replace(5, 7, strM);
					strB.delete(8, 10);
					if (d < 10) {
						strB.append("0").append(d);
					} else {
						strB.append(d);
					}
					afterZeroOClockStr = strB.toString() + " 00:00:01";
					strB.append(" ");
					if (h < 10) {
						strB.append("0").append(h);
					} else {
						strB.append(h);
					}
					strB.append(":");
					if (mi < 10) {
						strB.append("0").append(mi);
					} else {
						strB.append(mi);
					}
					strB.append(":");
					if (s < 10) {
						strB.append("0").append(s);
					} else {
						strB.append(s);
					}
				}
			}

		}

		// 当前时间往前推一个小时,一个小时前:strB0,当前时间:strB
		if (h0 != 23) {
			strB0.append(y).append("-");
			if (m < 10) {
				strB0.append("0").append(m);
			} else {
				strB0.append(m);
			}
			strB0.append("-");
			if (d < 10) {
				strB0.append("0").append(d);
			} else {
				strB0.append(d);
			}
			strB0.append(" ");
			if (h0 < 10) {
				strB0.append("0").append(h0);
			} else {
				strB0.append(h0);
			}
			strB0.append(":");
			if (mi < 10) {
				strB0.append("0").append(mi);
			} else {
				strB0.append(mi);
			}
			strB0.append(":");
			if (s < 10) {
				strB0.append("0").append(s);
			} else {
				strB0.append(s);
			}
		} else {// 零点往前推一小时,日期减一天
			// 月初第一天的零点,往前推一小时是上个月,月份减一天
			int y0 = y-1;
			int d0 = d - 1;
			int d28 = 28;
			int d29 = 29;
			int d30 = 30;
			int d31 = 31;
			int m1 = m - 1;
			strB0.append(y).append("-");
			// 如果日期为1号,月份往前推一个月
			if (d == 1) {
				if (m == 5 || m == 7 || m == 10 || m == 12) {
					if (m1 < 10) {
						strB0.append("0").append(m1);
					} else {
						strB0.append(m1);
					}
					strB0.append("-");
					strB0.append(d30);
					strB0.append(" ");
					if (h0 < 10) {
						strB0.append("0").append(h0);
					} else {
						strB0.append(h0);
					}
					strB0.append(":");
					if (mi < 10) {
						strB0.append("0").append(mi);
					} else {
						strB0.append(mi);
					}
					strB0.append(":");
					if (s < 10) {
						strB0.append("0").append(s);
					} else {
						strB0.append(s);
					}
				} else if (m == 2 || m == 4 || m == 6 || m == 8 || m == 9 || m == 11) {
					if (m1 < 10) {
						strB0.append("0").append(m1);
					} else {
						strB0.append(m1);
					}
					strB0.append("-");
					strB0.append(d31);
					strB0.append(" ");
					if (h0 < 10) {
						strB0.append("0").append(h0);
					} else {
						strB0.append(h0);
					}
					strB0.append(":");
					if (mi < 10) {
						strB0.append("0").append(mi);
					} else {
						strB0.append(mi);
					}
					strB0.append(":");
					if (s < 10) {
						strB0.append("0").append(s);
					} else {
						strB0.append(s);
					}
				} else if (m == 3) {
					if (m1 < 10) {
						strB0.append("0").append(m1);
					} else {
						strB0.append(m1);
					}
					strB0.append("-");
					//是否为闰年做处理
					if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) {
						strB0.append(d29);
					} else {
						strB0.append(d28);
					}
					strB0.append(" ");
					if (h0 < 10) {
						strB0.append("0").append(h0);
					} else {
						strB0.append(h0);
					}
					strB0.append(":");
					if (mi < 10) {
						strB0.append("0").append(mi);
					} else {
						strB0.append(mi);
					}
					strB0.append(":");
					if (s < 10) {
						strB0.append("0").append(s);
					} else {
						strB0.append(s);
					}
				} else if (m == 1) {//一月份零点往前推一小时,年份要减1,月份要变为12,日为31
					String strY = Integer.toString(y0);
					strB0.replace(0, 4, strY);
					strB0.append("12");
					strB0.append("-");
					strB0.append(d31);
					strB0.append(" ");
					if (h0 < 10) {
						strB0.append("0").append(h0);
					} else {
						strB0.append(h0);
					}
					strB0.append(":");
					if (mi < 10) {
						strB0.append("0").append(mi);
					} else {
						strB0.append(mi);
					}
					strB0.append(":");
					if (s < 10) {
						strB0.append("0").append(s);
					} else {
						strB0.append(s);
					}
				}
			} else {
				if (m < 10) {
					strB0.append("0").append(m);
				} else {
					strB0.append(m);
				}
				strB0.append("-");
				if (d0 < 10) {
					strB0.append("0").append(d0);
				} else {
					strB0.append(d0);
				}
				strB0.append(" ");
				if (h0 < 10) {
					strB0.append("0").append(h0);
				} else {
					strB0.append(h0);
				}
				strB0.append(":");
				if (mi < 10) {
					strB0.append("0").append(mi);
				} else {
					strB0.append(mi);
				}
				strB0.append(":");
				if (s < 10) {
					strB0.append("0").append(s);
				} else {
					strB0.append(s);
				}
			}
		}

		String anHourAgoStr = strB0.toString();
		String currentTimeStr = strB.toString();
		System.out.println("一小时前:" + anHourAgoStr + "," + "当前时间:" + currentTimeStr);
		System.out.println(
				"beforeZeroOClockStr:" + beforeZeroOClockStr + "," + "afterZeroOClockStr:" + afterZeroOClockStr);

		Date anHourAgo = null;
		Date currentTime = null;
		try {
			anHourAgo = DateUtil.stringToDate(anHourAgoStr, DateUtil.DATETIME_FORMAT);
			currentTime = DateUtil.stringToDate(currentTimeStr, DateUtil.DATETIME_FORMAT);
		} catch (Exception e1) {
			return new Resp2(ResCode.TIME_FORMAT_ERROR);
		}
		//小时不为零点时
		if (h != 0) {
			List<ParkingLogFull> addedList = parkingLogFullMapper.getByCurrentTimeAndIsAdded(anHourAgo, currentTime);
			System.out.println("addedList长度为:" + addedList.size());
			 for(ParkingLogFull parkingLogFull : addedList) {
				 Long arriveTime = parkingLogFull.getArriveTime();
				 Long leaveTime = parkingLogFull.getLeaveTime();
				 if (arriveTime != null && leaveTime != null) {
				 //以离场时间为准,查出该时间段内的数据总量
				 }
				 if (leaveTime.toString().isEmpty() && arriveTime != null) {
				 //以进场时间为准,查出该时间段内的数据总量
				 }
				 }
		} else {// h为0时,分开时段处理
			Date beforeZeroOClock = null;
			Date afterZeroOClock = null;
			try {
				System.out.println("开始转换时间格式");
				beforeZeroOClock = DateUtil.stringToDate(beforeZeroOClockStr, DateUtil.DATETIME_FORMAT);
				afterZeroOClock = DateUtil.stringToDate(afterZeroOClockStr, DateUtil.DATETIME_FORMAT);
			} catch (Exception e1) {
				return new Resp2(ResCode.TIME_FORMAT_ERROR);
			}
			System.out.println(
					"当前h为0," + "beforeZeroOClock:" + beforeZeroOClock + "," + "afterZeroOClock:" + afterZeroOClock);
			List<ParkingLogFull> addedListBeforeZeroOClock = parkingLogFullMapper.getByCurrentTimeAndIsAdded(anHourAgo,
					beforeZeroOClock);
			List<ParkingLogFull> addedListAfterZeroOClock = parkingLogFullMapper
					.getByCurrentTimeAndIsAdded(afterZeroOClock, currentTime);
			System.out.println("零点之前:addedListBeforeZeroOClockadded长度为:" + addedListBeforeZeroOClock.size());
			System.out.println("零点之后:addedListAfterZeroOClock长度为:" + addedListAfterZeroOClock.size());
		}

		
		return null;
	}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值