java 获取几天前和几天后的时间
程序员文章站
2022-04-04 21:22:13
...
/**
* 得到几天前的时间
* @param d
* @param day
* @return
*/
public static Date getDateBefore(Date d,int day){
Calendar now =Calendar.getInstance();
now.setTime(d);
now.set(Calendar.DATE,now.get(Calendar.DATE)-day);
return now.getTime();
}
/**
* 得到几天后的时间
* @param d
* @param day
* @return
*/
public static Date getDateAfter(Date d,int day){
Calendar now =Calendar.getInstance();
now.setTime(d);
now.set(Calendar.DATE,now.get(Calendar.DATE)+day);
return now.getTime();
}
/**
*获取今天的时间的凌晨 到 23点
*
*/
private void initTime(){
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
this.startTime=sdf.format(cal.getTime())+" 00:00:00";
this.endTime=sdf.format(cal.getTime())+" 23:59:59";
}
//判断是不是昨天.同一天,前天
/**
* @author LuoB.
* @param oldTime 较小的时间
* @param newTime 较大的时间 (如果为空 默认当前时间 ,表示和当前时间相比)
* @return -1 :同一天. 0:昨天 . 1 :至少是前天.
* @throws ParseException 转换异常
*/
private int isYeaterday(Date oldTime,Date newTime) throws ParseException{
if(newTime==null){
newTime=new Date();
}
//将下面的 理解成 yyyy-MM-dd 00:00:00 更好理解点
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String todayStr = format.format(newTime);
Date today = format.parse(todayStr);
//昨天 86400000=24*60*60*1000 一天
if((today.getTime()-oldTime.getTime())>0 && (today.getTime()-oldTime.getTime())<=86400000) {
return 0;
}
else if((today.getTime()-oldTime.getTime())<=0){ //至少是今天
return -1;
}
else{ //至少是前天
return 1;
}
}
//判断是不是今天
private boolean isToday(Date time){
try {
Date nowTime=new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String todayStr = format.format(nowTime);
Date today = format.parse(todayStr);
long starttime=today.getTime();
long endtime=today.getTime()+86400000;
if(starttime<=time.getTime() && time.getTime()<=endtime){
return true;
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
上一篇: 每年请2天病假
推荐阅读
-
java多线程定时器和java判断一个时间是否在时间区间内和用正则表达式获取String字符串之间的数据
-
mysql 获取昨天日期、今天日期、明天日期以及前一个小时和后一个小时的时间
-
Java 中的Date(获取一天的开始和结束时间)
-
Java 8---LocalDate,LocalTime处理日期时间,获取当前时间的最大时间和最小时间
-
java获得指定时间几天前或几天后的日期
-
java获得指定时间几天前或几天后的日期
-
时间工具类DataUtils.java,通过输入开始时间和截至时间,获取之间的日期
-
java获取当前时间所在一周的周一和周日日期
-
使用java获取当前日期后几天内的工作日和节假日数
-
Java小知识:获取当前日期前(后)几天的日期