java中关于日期 Date 的相关操作

来源:互联网 发布:stc89c52单片机 编辑:程序博客网 时间:2024/06/07 12:07
  1.   /**
  2.   * 计算日期差值。
  3.   * 
  4.   * @param sBeginDate
  5.   * @param sEndDate
  6.   * @return
  7.   */
  8.   public int computeCoolingOffPeriod(Date sBeginDate,Date sEndDate) throws Exception{
  9.          Calendar calendar1=Calendar.getInstance();;
  10.          Calendar calendar2=Calendar.getInstance();;
  11.         
  12.          calendar1.setTime(sBeginDate);
  13.          calendar2.setTime(sEndDate);
  14.          return  (int)( (calendar2.getTimeInMillis()-calendar1.getTimeInMillis())/1000/60/60/24 );//获取天数的差值。
  15.          
  16.  }

1  ,计算一日期加上若干天之后的日期。

/**
     * 期日を増加します
     * 
     * 
@param date String対象
     * 
@param inteval int対象
     
     * 
@return String対象
     
*/

    
public static String resetDay(String date,int inteval) {
        String dateTimeFrom 
= "";
        
try {
            
// DateFormat df = DateFormat.getDateTimeInstance();
            Calendar calendar = new GregorianCalendar();
            SimpleDateFormat simpleDateFormat 
= new SimpleDateFormat("yyyy/MM/dd");
            calendar.clear();
            calendar.set(Integer.parseInt(date.substring(
0,4)), Integer.parseInt(date.substring(5,7)) - 1, Integer
                    .parseInt(date.substring(
810)));
            
            calendar.add(Calendar.DAY_OF_MONTH, inteval);
            
            dateTimeFrom 
= simpleDateFormat.format(calendar.getTime());
            
return dateTimeFrom;
        }
 catch (Exception e) {
            e.getMessage();
            
return "";
        }


    }

 

2 ,计算两个日期相差几天。

 

/**
     * 2つの任意の期日間の違いの運命を計算します(自然の日)
     * 
     * 
@param sBeginDate String対象
     * 
@param sEndDate String対象
     * 
     * 
@return 期日間の違い
     * 
@throws Exception 例外を発生した場合の対象。
     
*/

      
public int computeCoolingOffPeriod(String sBeginDate,String sEndDate) throws Exception{
        Calendar calendar1
=Calendar.getInstance();;
        Calendar calendar2
=Calendar.getInstance();;
        SimpleDateFormat formatter1 
= new SimpleDateFormat("yyyyMMdd");//格式很重要:是20051031       //if (sBeginDate.equals("0")) {System.out.println("sBirthDate.equals====0");   sBeginDate = "19000101";     }

        calendar1.setTime(formatter1.parse(sBeginDate.replaceAll(
"/""")));
        calendar2.setTime(formatter1.parse(sEndDate.replaceAll(
"/""")));

        
return  (int)( (calendar2.getTimeInMillis()-calendar1.getTimeInMillis())/1000/60/60/24 );//获取天数的差值。

        
      }

 

 

 

 

3  求一个日期在两个日期之间。

/**
     * 有効な期限内の勤務区分を得ます

     * 
     * 
@param tmpArrayList ArrayList対象
     * 
@param fromDateString String対象
     * 
     * 
@return なし
     * 
@throws Exception 例外を発生した場合の対象。

     * 
     
*/

    
private ArrayList resetList(ArrayList tmpArrayList,String fromDateString)throws Exception{
        ArrayList applicationList 
= new ArrayList();
        
for(int i = 0; i < tmpArrayList.size(); i++){
            
            SmallDateChoose smallDateChoose 
= (SmallDateChoose) tmpArrayList.get(i);
            Calendar fromDate 
= Calendar.getInstance();
            Calendar availabilityStartDate 
= Calendar.getInstance();
            Calendar availabilityEndDate 
= Calendar.getInstance();
            String availabilityStartDateString 
= smallDateChoose.getAvailabilityStartDate();
            String availabilityEndDatetring 
= smallDateChoose.getAvailabilityEndDate();
            fromDate.setTime(fromDate.getTime());
            fromDate.set(Integer.parseInt(fromDateString.substring(
04)), Integer
                    .parseInt(fromDateString.substring(
57)) - 1, Integer.parseInt(fromDateString
                    .substring(
810)));
            availabilityStartDate.set(Integer.parseInt(availabilityStartDateString.substring(
04)), Integer.parseInt(availabilityStartDateString
                    .substring(
57)) - 1, Integer.parseInt(availabilityStartDateString.substring(810)));
            availabilityEndDate.set(Integer.parseInt(availabilityEndDatetring.substring(
04)), Integer.parseInt(availabilityEndDatetring
                    .substring(
57)) - 1, Integer.parseInt(availabilityEndDatetring.substring(810)));

            
if(! fromDate.before(availabilityStartDateString) & ! fromDate.after(availabilityEndDate)){
                ArrayList tempList 
= new ArrayList();
                tempList.add(smallDateChoose.getWorkDivisionName());
                applicationList.add(tempList);
            }

        }

        
        
return  applicationList;
    }

 4.根据日期获得对应的星期几。

 

/**
     * 曜日を獲得します

     * 
     * 
@param argDate
     * 
     * 
@return なし

     * 
     
*/

    
private String getDayOfWeek(String argDate) {

        
if (argDate.length() != 10{
            
throw new IllegalArgumentException("argDate   length  !=   8");
        }

        
int intArgY = Integer.parseInt(argDate.substring(04));
        
int intArgM = Integer.parseInt(argDate.substring(57));
        
int intArgD = Integer.parseInt(argDate.substring(810));

        Calendar calendar 
= GregorianCalendar.getInstance();
        calendar.set(intArgY, intArgM 
- 1, intArgD);
        
int returnDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
        String showDate 
= "";
        
switch (returnDayOfWeek) {
            
case 1:
                showDate 
= "";
                
break;
            
case 2:
                showDate 
= "";
                
break;
            
case 3:
                showDate 
= "";
                
break;
            
case 4:
                showDate 
= "";
                
break;
            
case 5:
                showDate 
= "";
                
break;
            
case 6:
                showDate 
= "";
                
break;
            
default:
                showDate 
= "";
                
break;
        }

        
return showDate;
    }

 

// 另一个Java获取各种常用时间方法

http://www.javaeye.com/topic/285405

 

原创粉丝点击