Java 中獲得當前年份和月份最大天數。

悠悠隱於市發表於2011-01-11
拿到當前月份最大天數,.這個需求用的非常之多。 解決的方法也很多種..
我做專案中用的最多的就是下面的這種:


//寫個主方法測試;是否通過..
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 
 

 

相關文章