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()) + "个星期天");  
    }  
}

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值