欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;
   }
}

结果 :

java 日期加减天数、月数、年数的计算方式+java实现给指定日期加固定小时、天、月+java判断当前日期是星期几

常用方法: 

Calendar.DATE  : 代表天数

Calendar.WEDNESDAY: 代表周数

Calendar.MONTH : 代表月数

Calendar.YEAR :代表年数