关于 java中Calendar类的用法 ,在Eclipse中运行

来源:互联网 发布:一建培训班哪家好 知乎 编辑:程序博客网 时间:2024/06/11 01:33
 

/**
     * 获得当月第一天的日期时间 yyyy-MM-dd HH:mm:ss
     * @param date
     * @return
     */
    public static String getMonthFirstDate(Date date) {

 if (date == null) {
     date = new Date();
 }
 Calendar c = Calendar.getInstance();
 c.setTime(date);

 /*
  * 设定日期
  */
 Integer minDateNum = c.getActualMinimum(Calendar.DAY_OF_MONTH);
 c.set(Calendar.DAY_OF_MONTH, minDateNum);

 /*
  * 设定小时、分钟、秒
  */
 c.set(Calendar.HOUR, c.getActualMinimum(Calendar.HOUR));
 c.set(Calendar.AM_PM, Calendar.AM);
 c.set(Calendar.MINUTE, c.getActualMinimum(Calendar.MINUTE));
 c.set(Calendar.SECOND, c.getActualMinimum(Calendar.SECOND));

 return FORMATTOSEC24.format(c.getTime());
    }

    /**
     * 获得当月最有一天的日期时间 yyyy-MM-dd HH:mm:ss
     * @param date
     * @return
     */
    public static String getMonthLastDate(Date date) {

 if (date == null) {
     date = new Date();
 }
 Calendar c = Calendar.getInstance();
 c.setTime(date);

 /*
  * 设定日期
  */
 Integer maxDateNum = c.getActualMaximum(Calendar.DAY_OF_MONTH);
 c.set(Calendar.DAY_OF_MONTH, maxDateNum);

 /*
  * 设定小时、分钟、秒
  */
 c.set(Calendar.HOUR, c.getActualMaximum(Calendar.HOUR));
 c.set(Calendar.AM_PM, Calendar.PM);
 c.set(Calendar.MINUTE, c.getActualMaximum(Calendar.MINUTE));
 c.set(Calendar.SECOND, c.getActualMaximum(Calendar.SECOND));
 return FORMATTOSEC24.format(c.getTime());
    }

   
    /**
     * 获得当月的第一天的日期
     *
     * @return
     * @throws ParseException
     */
    @SuppressWarnings("deprecation")
    public static String getFristDayofMonth() throws Exception {

 Calendar calendar = Calendar.getInstance();
 calendar.set(Calendar.DATE, calendar
  .getActualMinimum(Calendar.DAY_OF_MONTH));
 return FORMATTODAY.format(calendar.getTime());
    }

    /**
     * 获得当月的最后一天的日期
     *
     * @return
     * @throws ParseException
     */
    public static String getLastDayOfMonth() throws Exception {

 Calendar calendar = Calendar.getInstance();
 calendar.set(Calendar.DATE, calendar
  .getActualMaximum(Calendar.DAY_OF_MONTH));
 return FORMATTODAY.format(calendar.getTime());
    }
   
    /**
     * 返回两个日期之间的所有天数的日期
     * @param begin
     * @param end
     * @return
     */
    @SuppressWarnings("deprecation")
    public static List<Date> getDate(Date begin , Date end){
 List<Date> result = new ArrayList<Date>();
 while(begin.before(end)){
     result.add(new Date(begin.getYear(),begin.getMonth(),begin.getDate()));
     begin.setDate(begin.getDate()+1);
 }
 result.add(end);
 return result;
    }
   
   
    /**
     * 根据两个日期获得之间所有的工作日期返回一个日期数组
     * (工作日不包括星期六和星期日)
     *
     * @param begin 开始日期
     * @param end   结束日期
     * @return      List<Date> 存放日期的数组
     */
    public static List<Date> getDateWeek(Date begin,Date end){
 if(null == begin){
     begin = new Date();
 }
 if(null == end){
     end = new Date();
 }
 List<Date> list = DateUtils.getDate(begin, end);
 List<Date> result = new ArrayList<Date>();
 Calendar calendar = Calendar.getInstance();
 for(int i=0;i<list.size();i++){
     calendar.setTime(list.get(i));
     if (calendar.get(Calendar.DAY_OF_WEEK) == 1
      || calendar.get(Calendar.DAY_OF_WEEK) == 7) {
  continue;
     }else{
  result.add(list.get(i));
     }
 }
 return result;
    }

    /**
     * 根据日期类型的数组获得数组里所有日期的星期
     * @param list 日期类型的数组
     * @return     返回字符串数组
     */
    public static List<String> getDateWeeks(List<Date> list){
 List<String> result = new ArrayList<String>();
 Calendar cal = Calendar.getInstance();
 for (int i = 0; i < list.size(); i++) {
     cal.setTime(list.get(i));
     switch (cal.get(Calendar.DAY_OF_WEEK)) {
  case 1:
      result.add("星期天");
      break;
  case 2:
      result.add("星期一");
      break;
  case 3:
      result.add("星期二");
      break;
  case 4:
      result.add("星期三");
      break;
  case 5:
      result.add("星期四");
      break;
  case 6:
      result.add("星期五");
      break;
  case 7:
      result.add("星期六");
      break;
  default:
      break;
     }

 }
 return result;
    }

原创粉丝点击