java 如何获取 一个月 有多少周

    Calendar c = Calendar.getInstance();
    c.set(Calendar.YEAR, 2013); // 2010年
    c.set(Calendar.MONTH, 9-1); // 6 月
    System.out.println("------------" + c.get(Calendar.YEAR) + "年" + (c.get(Calendar.MONTH) + 1) + "月的天数和周数-------------");
    System.out.println("天数:" + c.getActualMaximum(Calendar.DAY_OF_MONTH));
    System.out.println("周数:" + c.getActualMaximum(Calendar.WEEK_OF_MONTH));

2013年9月周数为6,为什么计算出为5?

楼主要的是从周一开始
c.setFirstDayOfWeek(Calendar.MONDAY) 指定从周一开始

Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, 2013); // 2010年
c.set(Calendar.MONTH, 9-1); // 6 月
System.out.println(c.getMaximum(Calendar.WEEK_OF_MONTH));

不是的,jdk里面的周,不是像我们认为的周一是开始。jdk里面应该是周日是一周的开始吧。所以9月在jdk里面是5周的,而我们认为是6周

2013-9月几周?不是5周吗?

[code="java"]
public static void getMonthWeek (String date) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
Date s = sdf.parse(date);
Calendar ca = Calendar.getInstance();
ca.setTime(s);
ca.setFirstDayOfWeek(Calendar.MONDAY);
System.out.println(ca.getActualMaximum(Calendar.WEEK_OF_MONTH));
};
[/code]