当前位置:编程学习 > JAVA >>

Java日期操作(待补充)

[java] 
/**
 * Java日期/时间处理类
 * @author Sking
 */ 
package datetime; 
 
import java.util.Calendar; 
import java.util.Date; 
import java.util.GregorianCalendar; 
 
public class DateUtil { 
    /*****-----------------Date操作------------------******/ 
    /**
     * (1)计算两个日期Date之间相隔的天数
     * @param start 开始日期
     * @param end 结束日期
     * @return 两个日期之间相隔的天数
     */ 
    public static int getIntervalDays(Date start,Date end){ 
        if(start.after(end)){//交换,保持start时间在前 
            Date t=start; 
            start=end; 
            end=t; 
        } 
        long s=start.getTime(); 
        long e=end.getTime(); 
        return (int)((e-s)/(60*60*24*1000)+0.5); 
    } 
     
    /**
     * (2)获取从指定日期Date开始指定天数后的日期
     * @param date 指定开始日期
     * @param n 指定天数
     * @return 指定日期开始指定天数后的日期
     */ 
    public static Date afterNDays(Date date,int n){ 
        GregorianCalendar cal=new GregorianCalendar(); 
        cal.setTime(date); 
        cal.add(Calendar.DATE, n); 
        return cal.getTime(); 
    } 
     
    /**
     * 获取当前日期所在月份的天数
     * @param date 当前日期
     * @return 当前日期所在月份的天数
     */ 
    public static int DaysOfMonth(Date date){ 
        GregorianCalendar cal=new GregorianCalendar(); 
        cal.setTime(date); 
        return cal.getActualMaximum(Calendar.DAY_OF_MONTH); 
    } 
     
    /**
     * 获取指定年的指定星期
     * @param year 指定年
     * @param week 一年中的第几个星期
     * @return 指定年的指定星期的Calendar字符串数组
     *                         (或者Date[])
     */ 
    //public static Date[] getWeek(int year,int week) 
    public static String[] getWeek(int year,int week){ 
        //Date[] result=new Date[7]; 
        String[] result=new String[7]; 
        GregorianCalendar cal=new GregorianCalendar(); 
        cal.set(Calendar.YEAR, year); 
        cal.set(Calendar.WEEK_OF_YEAR,week); 
        cal.set(Calendar.DAY_OF_WEEK,cal.getFirstDayOfWeek()); 
        //result[0]=cal.getTime(); 
        result[0]=cal.getTime().toString(); 
        for(int i=1;i<7;i++){ 
            cal.add(Calendar.DAY_OF_WEEK, 1); 
            //result[i]=cal.getTime(); 
            result[i]=cal.getTime().toString(); 
        } 
        return result; 
    } 
     
    /**
     * 获取指定年的第一个星期
     * @param year 指定年
     * @return 第一个星期的Calendar字符串数组
     */ 
    public static String[] FirstWeek(int year){ 
        return getWeek(year,1); 
    } 
     
    /**
     * 获取指定年的最后一个星期
     * @param year 指定年
     * @return 最后一个星期的Calendar字符串数组
     */ 
    public static String[] LastWeek(int year){ 
        GregorianCalendar cal=new GregorianCalendar(); 
        cal.set(Calendar.YEAR, year); 
        int last=cal.getActualMaximum(Calendar.WEEK_OF_YEAR); 
        return getWeek(year,last);   
    } 
     
    /**
     * 计算某年某月包含的完整星期的个数,完整星期必须包含从
     * getFirstDayOfWeek()到(getFirstDayOfWeek()+7)%7的全部日子
     * @param year 指定年
     * @param month 指定月
     * @return  某年某月包含的完整星期的个数
     * @throws Exception 月份没有在1-12之间
     */ 
    public static int FullWeekOfMonth(int year,int month) throws Exception{ 
        if(month<1||month>12) 
            throw new Exception("月份必须在1-12之间!"); 
        GregorianCalendar cal=new GregorianCalendar(); 
        int first=cal.getFirstDayOfWeek(); 
        int weekCount=0; 
        cal.set(Calendar.YEAR, year); 
        cal.set(Calendar.MONTH, month-1); 
        cal.set(Calendar.DAY_OF_MONTH, 1); 
        int endDay=cal.getMaximum(Calendar.DAY_OF_MONTH); 
        //剔除最开始不完整的星期部分 
        while(cal.get(Calendar.DAY_OF_WEEK)!=first){ 
        &nb
补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,