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 ,