拿到当前月份最大天数,.这个需求用的非常之多。 解决的方法也很多种..
我做项目中用的最多的就是下面的这种:


//写个主方法测试;是否通过..
public static void main(String[] args) {
		TestExtendedWorkHourApplication a = new TestExtendedWorkHourApplication();
                                //传入年份和月份,返回月份中最大的天数。
		int monthMaxday = a.findMaxDayInMonth(2011, 3);
		System.out.println(maxday);
	}
	//调用方法;传入年份和月份。
	 public static int findMaxDayInMonth(int year, int month) {      
        //得到Calendar实例对象。
        Calendar calendar = Calendar.getInstance();      
        if (year > 0) {      
            calendar.set(Calendar.YEAR, year);      
        }      
              
        if (month > 0) {      
            calendar.set(Calendar.MONTH, month - 1);      
        }      
              
        return findMaxDayInMonth(calendar);      
	    }  
	 
	 public static int findMaxDayInMonth(Calendar calendar) {      
        if (calendar == null) {      
            return 0;      
        }          
                    //得到实际月份的最大天数。
	    return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);      
	 }

 

 

 

Calendar time=Calendar.getInstance(); 
time.clear(); 
time.set(Calendar.YEAR,year); //year 为 int 
time.set(Calendar.MONTH,i-1);//注意,Calendar对象默认一月为0           
int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天数 
注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间 

//Calendar和Date的转化 

(1) Calendar转化为Date 
Calendar cal=Calendar.getInstance(); 
Date date=cal.getTime(); 

(2) Date转化为Calendar 
Date date=new Date(); 
Calendar cal=Calendar.getInstance(); 
cal.setTime(date); 

//格式化输出日期时间

Date date=new Date(); 
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
String time=df.format(date); 
System.out.println(time); 

4.计算一年中的第几星期 

(1)计算某一天是一年中的第几星期 
Calendar cal=Calendar.getInstance(); 
cal.set(Calendar.YEAR, 2006); 
cal.set(Calendar.MONTH,; 
cal.set(Calendar.DAY_OF_MONTH, 3); 
int weekno=cal.get(Calendar.WEEK_OF_YEAR); 

(2)计算一年中的第几星期是几号 
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); 
Calendar cal=Calendar.getInstance(); 
cal.set(Calendar.YEAR, 2006); 
cal.set(Calendar.WEEK_OF_YEAR, 1); 
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 
System.out.println(df.format(cal.getTime())); 
输出: 
2006-01-02 

5.add()和roll()的用法(不太常用) 

(1)add()方法 
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); 
Calendar cal=Calendar.getInstance(); 
cal.set(Calendar.YEAR, 2006); 
cal.set(Calendar.MONTH,; 
cal.set(Calendar.DAY_OF_MONTH, 3); 
cal.add(Calendar.DATE, -4); 
Date date=cal.getTime(); 
System.out.println(df.format(date)); 
cal.add(Calendar.DATE, 4); 
date=cal.getTime(); 
System.out.println(df.format(date)); 
输出: 
    2006-08-30 
      2006-09-03