当前位置 博文首页 > 范栩的博客:判断Date时间是否超过31天

    范栩的博客:判断Date时间是否超过31天

    作者:[db:作者] 时间:2021-08-31 09:48

    做毕设的时候,需要判断学生借书是否逾期,超过31天则逾期,于是用到以下方法。

    /**
    	 * 输入两个时间,一个是开始时间,另一个是结束时间
    	 * 两者相比较,判断是不是超过31天
    	 * @param startTime
    	 * @param endTime
    	 * @return
    	 */
    	public boolean checkOverdue(String startTime ,String endTime){
    		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    		try {
    			Date end = sdf.parse(endTime);
    			Date start = sdf.parse(startTime);
    			long day = 60*1000*60*24; // 1天
    			if(end.getTime()-(day*31) > start.getTime()){
    				return true;
    			}else{
    				return false;
    			}
    		} catch (ParseException e) {
    			e.printStackTrace();
    		}
    		return false;
    	}
    

    统计逾期次数,先查询借书记录(这里是具体实现了业务功能)

    /**
    	 * 根据sid查询出这个学生的借书记录
    	 * 然后根据借书记录中的借书时间和归还时间判断逾期
    	 * 逾期分为下面三种情况
    	 * 1. 没借过书,不会逾期
    	 * 2. 借了书还没还
    	 *    取出借书时间,然后取出当前时间,如果不超过31天,则没逾期
    	 *    取出借书时间,然后取出当前时间,如果超过31天,则逾期
    	 * 3. 借了书并且还了书
    	 *    直接计算借取时间,如果超过31天,则逾期
    	 * @param sid
    	 * @return
    	 */
    	public String checkOverdueBySid(int sid){
    		int num=0;
    		//这里是先查询借书记录
    		List<Borrow> borrows = borrowMapper.queryBorrowBySid(sid);
    		if(borrows==null) {
    			return "无逾期记录";
    		}else{
    			for (Borrow borrow : borrows) {
    				if("".equals(borrow.getReturnTime())||borrow.getReturnTime()==null){
    					Date date = new Date();
    					SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    					String nowTime = sdf.format(date);
    					if(checkOverdue(borrow.getBorrowTime(),nowTime)){
    						num+=1;
    					}
    				}else{
    					if(checkOverdue(borrow.getBorrowTime(),borrow.getReturnTime())){
    						num+=1;
    					}
    				}
    			}
    			if(num==0){
    				return "无逾期记录";
    			}else{
    				return "逾期"+num+"次";
    			}
    		}
    
    	}
    
    cs