private int MonthDays[][] =
{
{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};//是否润年
private boolean IsLeapYear(int Year)
{
return ((Year % 4 == 0) && ((Year % 100 != 0) || (Year % 400 == 0)));
}//取得某年月天数
private int DaysInAMonth(int Year, int Month)
{
if (IsLeapYear(Year) && (Month == 2))
{
return MonthDays[1][Month - 1];
} else
{
return MonthDays[0][Month - 1];
}
}int Days = DaysInAMonth(Year, Month);
{
{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};//是否润年
private boolean IsLeapYear(int Year)
{
return ((Year % 4 == 0) && ((Year % 100 != 0) || (Year % 400 == 0)));
}//取得某年月天数
private int DaysInAMonth(int Year, int Month)
{
if (IsLeapYear(Year) && (Month == 2))
{
return MonthDays[1][Month - 1];
} else
{
return MonthDays[0][Month - 1];
}
}int Days = DaysInAMonth(Year, Month);
如:
switch(i)
{
case 1:31;break;
case 2:29;break;
....
}
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM");
try {
System.out.println(getDaysInMonth(sdf.parse("2004-02")));
}
catch (Exception e) {} /** 给个日期计算对应月份的天数 */
public static int getDaysInMonth(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal.getActualMaximum(Calendar.DATE);
}
System.out.println(date.getActualMaximum( date.DAY_OF_MONTH ));
月份从0开始
Class Calendar int getActualMaximum(int field)
Return the maximum value that this field could have, given the current date. 举个例子,当前月的最大日期 Calendar calendar = Calendar.getInstance(); System.out.println(calendar.getActualMaximum(Calendar.DATE));
public static void main(String[] arguments) {
int yearIn = 2002;
int monthIn = 12;
if (arguments.length > 0)
monthIn = Integer.parseInt(arguments[0]);
if (arguments.length > 1)
yearIn = Integer.parseInt(arguments[1]);
System.out.println(monthIn + "/" + yearIn + " has "
+ countDays(monthIn, yearIn) + " days.");
} static int countDays(int month, int year) {
int count = -1;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
count = 31;
break;
case 4:
case 6:
case 9:
case 11:
count = 30;
break;
case 2:
if (year % 4 == 0)
count = 29;
else
count = 28;
if ((year % 100 == 0) & (year % 400 != 0))
count = 28;
}
return count;
}
}
maxDays 为返回的天数Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(intyear1,intmonth1-1,1);
int maxDays = cal.getActualMaximum(cal.DAY_OF_MONTH);