JAVA如何得到给定日期所在月份天数的集合

2025-02-25 15:39:10
推荐回答(3个)
回答1:

import java.util.Calendar;

public class Du {

public static void main(String[] args) {

String date = "2011-01-12";

int[] daysInMonth = getMonthDays(date);

for(int value: daysInMonth){
System.out.print(value + " ");
}

}

private static int[] getMonthDays(String date) {

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, Integer.parseInt(date.substring(0, 4)));
calendar.set(Calendar.MONTH, Integer.parseInt(date.substring(5, 7)) -1);

int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

int[] days = new int[maxDay];

for(int i = 1; i <= maxDay; i++){
days[i-1] = i;
}

return days;
}
}
-----------------
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

回答2:

import java.util.Calendar;
import java.util.Date;
public class Test4 {
Date d=new Date();
Calendar c=null;
public Test4() {
c=Calendar.getInstance();
c.setTime(d);
System.out.println(c.MONTH+" "+c.getActualMaximum(Calendar.DAY_OF_MONTH));
}
public static void main(String[] args) {
new Test4();
}
}

Date d=new Date();中,new Date(String s)也可以直接给定日期

回答3:

这个得自己写方法,可以得到这个月的最后一天,然后拼出来这个月天数的集合
// 某年某月的最后一天
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month-1);
cal.getActualMaximum(Calendar.DATE);