--1:日期操作以免自己要的时候忘记了
public Date reportGetDate(Date d,String type,int number){
Calendar calendar = Calendar.getInstance();
calendar.setTime(d);
if(type.equals("YEAR"))calendar.add(Calendar.YEAR,number);
if(type.equals("MONTH"))calendar.add(Calendar.MONTH,number);
if(type.equals("DAY"))calendar.add(Calendar.DAY_OF_MONTH,number);
if(type.equals("HOUR"))calendar.add(Calendar.HOUR_OF_DAY,number);
if(type.equals("min"))calendar.add(Calendar.MINUTE,number);
Date date = calendar.getTime();
return date;
}
2:判断只加工作日的情况,系统还有可能设置了休息日和加班日
/**
* 这个算法判断周末和加班日和休息日
* @throws Exception
*/
public int returnDay(Date bgnTime) throws Exception{
int isweekday=0;
int Sum=0;
// bgnTime=new Date();
for(isweekday=0;isweekday<3;){
SimpleDateFormat sf = new SimpleDateFormat( "yyyy-MM-dd ");
String workflag=ycsdjService.getSysholiday(sf.format(bgnTime));
//这个是系统里设置的节假日和加班日
if(workflag ==null){
workflag="WH";
}
//Date date=new Date();
Calendar cal=Calendar.getInstance();
cal.setTime(bgnTime);
if(cal.get(Calendar.DAY_OF_WEEK) == 1 || cal.get(Calendar.DAY_OF_WEEK) == 7){
if(workflag !=null&&workflag.equals("W")){
isweekday+=1;
cal.add(Calendar.DATE, 1);
bgnTime=cal.getTime();
Sum+=1;
}else{
cal.add(Calendar.DATE, 1);
bgnTime=cal.getTime();
Sum+=1;
}
}else{
if(workflag !=null&&workflag.equals("H" )){
cal.add(Calendar.DATE, 1);
bgnTime=cal.getTime();
Sum+=1;
}else{
isweekday+=1;
Sum+=1;
cal.add(Calendar.DATE, 1);
bgnTime=cal.getTime();
}
}
}
return Sum;
}
3:将第二个方法的值传回给第一个方法.就知道是加几天了
4:判断日期大小直接取方法 getTime();
Date dt1 = new Date();
Date dt2 = new Date();
if (dt1.getTime() > dt2.getTime()) {
System.out.println("dt1 在dt2前");
} else if (dt1.getTime() < dt2.getTime()) {
System.out.println("dt1在dt2后");
}