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

java失去当月天数

2012-10-27 
java得到当月天数1.使用calendar类实现/*** 取得当月天数* */public static int getCurrentMonthLastDay()

java得到当月天数
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()) + "个星期天"); 
    } 

热点排行