现在的位置: 首页 > 综合 > 正文

常用日期操作Calendar

2013年12月12日 ⁄ 综合 ⁄ 共 3061字 ⁄ 字号 评论关闭
 
package com.xumian.util.time;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;


public class DataUtil {
 
 
 /**
  * 获取0点日期
  * @param day
  * @return
  */
 public static Calendar getDateBeginning(Calendar day){
  Calendar cal=day;
  if(cal==null){
   cal=Calendar.getInstance();
  }
  SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
  String time=format.format(cal.getTime());
  Date date;
  try{
   date=format.parse(time);
   cal.setTime(date);
  }catch(Exception e){
  }
  return cal;
 }
 
 /**
  * 获取一个月第几天的日期
  * @param day
  * @param num
  * @return
  */
 public static Calendar getDateOfMonth(Calendar day,int num){
  Calendar cal= Calendar.getInstance();
  cal.setTime(day.getTime());
  int min=cal.getActualMinimum(Calendar.DATE);
  int max=cal.getActualMaximum(Calendar.DATE);
  if(num<min){
   cal.set(Calendar.DATE, min);
  }else if(num>max){
   cal.set(Calendar.DATE, max);
  }else{
   cal.set(Calendar.DATE, num);
  }
  return cal;
 }
 
 /**
  * 获得指定周之后的日期
  * @param day
  * @param num
  * @return
  */
 public static Calendar getDayAfterWeeks(Calendar day,int num){
  Calendar cal=Calendar.getInstance();
  cal.setTime(day.getTime());
  cal.add(Calendar.WEEK_OF_MONTH, num);
  return cal;
 }
 
 /**
  * 获得指定月数之后的日期
  * @param day
  * @param num
  * @return
  */
 public static Calendar getDayAfterMonthes(Calendar day,int num){
  Calendar cal=Calendar.getInstance();
  cal.setTime(day.getTime());
  cal.add(Calendar.MONTH, num);
  return cal;
 }
 
 public static String getFirstxq(String riqi) {
  Date d = new Date();
  SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
  try {
   d = sd.parse(riqi);
  } catch (Exception e) {
   e.printStackTrace();
  }
  int n = d.getDay();
  n = (8 - n) % 7;
  long t = d.getTime() / 1000;
  t += 3600 * 24 * n;
  d.setTime(t * 1000);
  return sd.format(d);
 }

 /**
  * 获取一年中指定月的天数
  * @param year
  * @param month
  * @return
  */
 public static int getDatesOfMonth(int year, int month) {
  Calendar a = Calendar.getInstance();
  a.set(Calendar.YEAR, year);
  a.set(Calendar.MONTH, month - 1);
  a.set(Calendar.DATE, 1);
  a.roll(Calendar.DATE, -1);
  int maxDate = a.get(Calendar.DATE);
  return maxDate;
 }

 public static String getdatexq(String riqi, int ts) {
  SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
  Date d = null;
  try {
   d = sf.parse(riqi);
  } catch (ParseException ex) {
  }
  Calendar c = Calendar.getInstance();
  c.setTime(d);
  c.add(c.DATE, ts);
  Date zdrq = c.getTime();
  return sf.format(zdrq);
 }

 public static String getNextDate(String dd,int n) {
  SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
  Date d1 = null;
  try {
   Date d = sf.parse(dd);
   Calendar c = Calendar.getInstance();
   c.setTime(d);
   c.add(c.DATE, n);
   d1=c.getTime();
  } catch (ParseException ex) {
  }
  if(d1!=null)
   return sf.format(d1);
  else
   return "";
 }
 
 public static String getNextMouth(String cm, int n) {
  SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
  Date d = null;
  try {
   d = sf.parse(cm);
  } catch (ParseException e) {
  }
  Calendar c = Calendar.getInstance();
  c.setTime(d);
  c.add(Calendar.MONTH, n);
  Date d1 = c.getTime();
  String dd1 = sf.format(d1);
  return dd1.toString();
 }
 
 public static String getTwoDay(String sj1, String sj2) {    
        SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");    
        long day = 0;    
        try {    
         java.util.Date date = myFormatter.parse(sj1);    
         java.util.Date mydate = myFormatter.parse(sj2);    
         day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);    
        } catch (Exception e) {    
         return "";    
        }    
        return day + "";    
    }     
 
 public static void main(String[] args){
  
  System.out.println(DataUtil.getNextDate("2011-02-23",64));
 }


}

 

抱歉!评论已关闭.