首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java 日期处置

2012-09-01 
java 日期处理平时很多时候要用到日期的处理,日期的相加,日期的相减,日期转换等等!后期会慢慢完善文章,补

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;
}

热点排行