Android得到當月天數

1.使用calendar類實現

/** 
 * 取得當月天數 
 * */  
public static int getCurrentMonthLastDay()  
{  
    Calendar a = Calendar.getInstance();  
    a.set(Calendar.DATE, 1);//把日期設置爲當月第一天  
    a.roll(Calendar.DATE, -1);//日期回滾一天,也就是最後一天  
    int maxDate = a.get(Calendar.DATE);  
    return maxDate;  
}  
  
/** 
 * 得到指定月的天數 
 * */  
public static int getMonthLastDay(int year, int month)  
{  
    Calendar a = Calendar.getInstance();  
    a.set(Calendar.YEAR, year);  
    a.set(Calendar.MONTH, month - 1);  
    a.set(Calendar.DATE, 1);//把日期設置爲當月第一天  
    a.roll(Calendar.DATE, -1);//日期回滾一天,也就是最後一天  
    int maxDate = a.get(Calendar.DATE);  
    return maxDate;  
}

2.使用自己編寫的函數實現

package test;  
  
import java.text.SimpleDateFormat;  
import java.util.Calendar;  
import java.util.Date;  
  
/** 
 * 日期工具類 by hpf  
 * */  
public class DateUtils  
{  
    //返回當前年月日  
    String getNowDate()  
    {  
        Date date = new Date();  
        String nowDate = new SimpleDateFormat("yyyy年MM月dd日").format(date);  
        return nowDate;  
    }  
  
    //返回當前年份  
    int getYear()  
    {  
        Date date = new Date();  
        String year = new SimpleDateFormat("yyyy").format(date);  
        return Integer.parseInt(year);  
    }  
  
    //返回當前月份  
    int getMonth()  
    {  
        Date date = new Date();  
        String month = new SimpleDateFormat("MM").format(date);  
        return Integer.parseInt(month);  
    }  
  
    //判斷閏年  
    boolean isLeap(int year)  
    {  
        if (((year % 100 == 0) && year % 400 == 0) || ((year % 100 != 0) && year % 4 == 0))  
            return true;  
        else  
            return false;  
    }  
  
    //返回當月天數  
    int getDays(int year, int month)  
    {  
        int days;  
        int FebDay = 28;  
        if (isLeap(year))  
            FebDay = 29;  
        switch (month)  
        {  
            case 1:  
            case 3:  
            case 5:  
            case 7:  
            case 8:  
            case 10:  
            case 12:  
                days = 31;  
                break;  
            case 4:  
            case 6:  
            case 9:  
            case 11:  
                days = 30;  
                break;  
            case 2:  
                days = FebDay;  
                break;  
            default:  
                days = 0;  
                break;  
        }  
        return days;  
    }  
  
    //返回當月星期天數  
    int getSundays(int year, int month)  
    {  
        int sundays = 0;  
        SimpleDateFormat sdf = new SimpleDateFormat("EEEE");  
        Calendar setDate = Calendar.getInstance();  
        //從第一天開始  
        int day;  
        for (day = 1; day <= getDays(year, month); day++)  
        {  
            setDate.set(Calendar.DATE, day);  
            String str = sdf.format(setDate.getTime());  
            if (str.equals("星期日"))  
            {  
                sundays++;  
            }  
        }  
        return sundays;  
    }  
  
    public static void main(String[] args)  
    {  
        DateUtils du = new DateUtils();  
        System.out.println("今天日期是:" + du.getNowDate());  
        System.out.println("本月有" + du.getDays(du.getYear(), du.getMonth()) + "天");  
        System.out.println("本月有" + du.getSundays(du.getYear(), du.getMonth()) + "個星期天");  
    }  
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章