java 日期加减天数、月数、年数的计算方式+java实现给指定日期加固定小时、天、月+java判断当前日期是星期几
程序员文章站
2022-05-27 16:12:48
...
本篇文章主要介绍一下Calendar类的对时间对一些使用方法:java 日期加减天数、月数、年数的计算方式, java实现给指定日期加固定小时、天、月,java判断当前日期是星期几,java判断某个时间是否在条件时间之内。
代码:
public static void main(String[] args) throws Exception{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String nowTime = sdf.format(new Date());
int week = dayForWeek(nowTime);
System.out.println("今天是"+nowTime+"周"+week);
String newTime = calculateTime(sdf.parse(nowTime),week);
System.out.println(nowTime+"减去"+week+"天数后日期是"+newTime);
Date addHourTime = newDate(sdf.parse(newTime));
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(nowTime+"加时分秒后日期是"+sdf.format(addHourTime));
sdf = new SimpleDateFormat("MM-dd");
String str = "12-26";
boolean isOK = belongDate(sdf.parse(nowTime),sdf.parse(str),0);
System.out.println(sdf.format(new Date())+"和12-26比较结果是"+isOK);
Date de = sdf.parse("12-26");
isOK = belongDate(de,sdf.parse(str),0);
System.out.println(sdf.format(de)+"和12-26比较结果是"+isOK);
}
/**
* 判断当前日期是星期几<br>
* <br>
* @param pTime 修要判断的时间<br>
* @return dayForWeek 判断结果<br>
* @Exception 发生异常<br>
*/
public static int dayForWeek(String pTime) throws Exception {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
c.setTime(format.parse(pTime));
int dayForWeek = 0;
if(c.get(Calendar.DAY_OF_WEEK) == 1){
dayForWeek = 7;
}else{
dayForWeek = c.get(Calendar.DAY_OF_WEEK) - 1;
}
return dayForWeek;
}
/**
* 计算日期
* @param time 计算的时间
* @param day 减去的天数
* @return
* @throws Exception
*/
public static String calculateTime(Date time,int day) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.setTime(time);
cal.add(Calendar.DATE, -day);
//cal.add(Calendar.MONTH, -day); 月数
// cal.add(Calendar.YEAR, -day); //年份
String newTime = sdf.format(cal.getTime());
return newTime;
}
/**
* 设置当前时间加时分秒
* @param time
* @return
*/
public static Date newDate(Date time) {
Calendar c = Calendar.getInstance();
c.setTime(time); //设置时间
c.add(Calendar.HOUR,23); //日期小时加23小时
c.add(Calendar.MINUTE, 59); //日期分钟加59分钟
c.add(Calendar.SECOND, 59); //日期分钟加59分钟
Date date = c.getTime(); //结果
return date;
}
/**
* 比较时间是否在某个时间段内
* @param time
* @param now
* @param n
* @return
*/
public static boolean belongDate(Date time, Date now, int n) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance(); //得到日历
calendar.setTime(now);//把当前时间赋给日历
calendar.add(Calendar.DAY_OF_MONTH, n);
Date before7days = calendar.getTime(); //得到n前的时间
//我这里是比较是否具体某一天,判断范围可以换成大于小于
if (before7days.getTime() == time.getTime()) {
return true;
} else {
return false;
}
}
结果 :
常用方法:
Calendar.DATE : 代表天数
Calendar.WEDNESDAY: 代表周数
Calendar.MONTH : 代表月数
Calendar.YEAR :代表年数
上一篇: 正则表达式replace方法应用
下一篇: 摩拜单车,还能走多远?