读书人

java 日期处置

发布时间: 2012-09-01 09:33:02 作者: rapoo

java 日期处理
平时很多时候要用到日期的处理,日期的相加,日期的相减,日期转换等等!后期会慢慢完善文章,补充各种日期处理例子:

1、日期相减简单小例子:
Date gpsTime = new Date();
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
df.format(gpsTime);
String sevenDayBefore = df.format(
new Date(gpsTime.getTime() - (long)7 * 24 * 60 * 60 * 1000));//减去7天
Date sevenDay;
sevenDay = df.parse(sevenDayBefore);
if(gpsTime.getTime()>sevenDay.getTime()){
System.out.println("gpsTime大");
}

2 获取这个月的最大天数
@SuppressWarnings("deprecation")
public static int getDays(int year,int month){
Date d= new Date(year-1900,month-1,1);
Calendar c = Calendar.getInstance();
c.setTime(d);
return c.getActualMaximum(Calendar.DAY_OF_MONTH);
}
3
//输入年月星期几,得到这个月的那些日期是星期几
public static List<Date> getWeekDays(int year,int month,String week){
List<Date> list = new ArrayList<Date>();
Calendar c_begin = new GregorianCalendar();
Calendar c_end = new GregorianCalendar();
DateFormatSymbols dfs = new DateFormatSymbols();
String[] weeks = dfs.getWeekdays();
int days = getDays(year,month);
c_begin.set(year, month-1, 1); //Calendar的月从0-11,所以4月是3.
c_end.set(year, month-1, days); //Calendar的月从0-11,所以5月是4.
int count = 1;
c_end.add(Calendar.DAY_OF_YEAR, 1); //结束日期下滚一天是为了包含最后一天
while(c_begin.before(c_end)){
if(weeks[c_begin.get(Calendar.DAY_OF_WEEK)].equals(week)){
list.add(new java.sql.Date(c_begin.getTime().getTime()));
}
if(c_begin.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY){
count++;
}
c_begin.add(Calendar.DAY_OF_YEAR, 1);
}
return list;
}

4、//获取一段时间内每天的日期
public static List<Date> getEveryDay(String startTime,String endTime,String week){
List<Date> list = new ArrayList<Date>();
Calendar c_begin = new GregorianCalendar();
Calendar c_end = new GregorianCalendar();
DateFormatSymbols dfs = new DateFormatSymbols();
String[] weeks = dfs.getWeekdays();
int years = Integer.parseInt(startTime.substring(0, 4));
int months = Integer.parseInt(startTime.substring(5, 7));
int days = Integer.parseInt(startTime.substring(8, 10));
int yeard = Integer.parseInt(endTime.substring(0, 4));
int monthd = Integer.parseInt(endTime.substring(5, 7));
int daye = Integer.parseInt(endTime.substring(8, 10));
c_begin.set(years,months-1,days); //Calendar的月从0-11,所以4月是3.
c_end.set(yeard,monthd-1,daye); //Calendar的月从0-11,所以5月是4.
int count = 1;
c_end.add(Calendar.DAY_OF_YEAR, 1); //结束日期下滚一天是为了包含最后一天
while(c_begin.before(c_end)){
if(!week.equals("") && weeks[c_begin.get(Calendar.DAY_OF_WEEK)].equals(week)){
list.add(new java.sql.Date(c_begin.getTime().getTime()));
}
else if(week.equals("")){
list.add(new java.sql.Date(c_begin.getTime().getTime()));
}
if(c_begin.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY){
count++;
}
c_begin.add(Calendar.DAY_OF_YEAR, 1);
}
return list;
}

读书人网 >编程

热点推荐