场景:在财务中很常见,当在某日时,就不允许提交上月或某个期间的费用了,今天用Calendar轻松这一目标,并封装成方法,四处调用。
废话少说,上代码。
1、判断的方法method
/** * 判断结账日期 */ public static boolean isCloseAccounts(Date date) { boolean isResult = true; //取得日期,当月的月份值 Date today = new Date(); Calendar c = Calendar.getInstance(); c.setTime(today); c.add(Calendar.DAY_OF_MONTH, 0); int nowMonth = c.get(Calendar.MONTH);//本月月份值 int laterDay = c.get(Calendar.DAY_OF_MONTH);//本月哪天 //数据中月份判断,如果与now的month不相等 Calendar beforeMonth = Calendar.getInstance(); beforeMonth.setTime(date); beforeMonth.add(Calendar.MONTH, 0); int beforeMon = beforeMonth.get(Calendar.MONTH);//数据中的月份值 //设定结账日期 if (laterDay > 3) { if (beforeMon != nowMonth) { isResult = false; } else { isResult = true; } } return isResult; }2、调用时的用法,特简单
//判断日期是否在关闭账期后 if (!IndexCodeUtil.isCloseAccounts(date)){ throw new Exception("每月6号扎账,不再允许录入上月数据,请联系大区财务"); }