日期的计算处理

来源:互联网 发布:网络门店管理系统 编辑:程序博客网 时间:2024/05/18 00:38

import java.rmi.activation.ActivationException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.zip.DataFormatException;
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Calendar; 
import java.util.GregorianCalendar; 
public class datetest {

   

 
    public static void main(String[] args) throws Exception {
          
       Date date=new Date();
       date.setDate(date.getDate()+1);  //给当前时间加上一天
      
       //当前时间两天后的日期
         SimpleDateFormat   df=new   SimpleDateFormat("yyyy-MM-dd");   
         Calendar   c=Calendar.getInstance();  
         c.add(Calendar.DAY_OF_WEEK,2);  
         System.out.println(df.format(c.getTime()));  
          
         //两日期相差的天数
         long days = DateDays("2010-12-25","2010-12-28");
         System.out.println(days);
 

         //字符串格式的日期转化为Date类型的日期
//         String d="2006-11-23"  ;              
//
//                SimpleDateFormat    dff    =new    SimpleDateFormat("yyyy-MM-dd");
//               java.util.Date    cDate    =    dff.parse(d);
//               java.sql.Date    dd    =    new    java.sql.Date(cDate.getTime());
//              
//               System.out.println("转换后日期="+dd);
              
        System.out.println(getBeforeAfterDate("2010-12-28",2));
    }
    //计算两日期相差的天数
    public static long DateDays(String date1, String date2)
    throws DataFormatException, ActivationException {

  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
  long myTime;
  Date aDate2;
  Date aDate;
  long myTime2;
  long days = 0;
  try {
      aDate = formatter.parse(date1);// 任意日期,包括当前日期  格式成时间Date类型
      myTime = (aDate.getTime() / 1000);  //Date.getTime()返回的是毫秒数
  
      // SimpleDateFormat formatter =new SimpleDateFormat("yyyy-MM-dd");
      aDate2 = formatter.parse(date2);// 任意日期,包括当前日期
      myTime2 = (aDate2.getTime() / 1000);
  
      if (myTime > myTime2) {
          days = (myTime - myTime2) / (1 * 60 * 60 * 24)+1;
      } else {
          days = (myTime2 - myTime) / (1 * 60 * 60 * 24)+1;
      }
  
  } catch (Exception e) {
      e.printStackTrace();
  }
  
  return days;
  
  }

     
    //给定字符串格式的时间,算出n天后的日期
    public static java.sql.Date getBeforeAfterDate(String datestr, int day) { 
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 
        java.sql.Date olddate = null; 
        try { 
            df.setLenient(false); 
            olddate = new java.sql.Date(df.parse(datestr).getTime()); 
        } catch (ParseException e) { 
            throw new RuntimeException("日期转换错误"); 
        } 
        Calendar cal = new GregorianCalendar(); 
        cal.setTime(olddate); 
 
        int Year = cal.get(Calendar.YEAR); 
        int Month = cal.get(Calendar.MONTH); 
        int Day = cal.get(Calendar.DAY_OF_MONTH); 
 
        int NewDay = Day + day; 
 
        cal.set(Calendar.YEAR, Year); 
        cal.set(Calendar.MONTH, Month); 
        cal.set(Calendar.DAY_OF_MONTH, NewDay); 
 
        return new java.sql.Date(cal.getTimeInMillis()); 
    } 
}

原创粉丝点击