1. 程式人生 > >android 獲取一個月有多少周

android 獲取一個月有多少周

 Calendar c = Calendar.getInstance();
c.setTime(new Date(System.currentTimeMillis()));
        int dayCurrentMonth = c.get(Calendar.DAY_OF_MONTH);c.set(year, month, 0);
        int dayOFMonth = c.getActualMaximum(Calendar.DAY_OF_MONTH);
c.setFirstDayOfWeek(Calendar.MONDAY);
//當前時間,貌似多餘,其實是為了所有可能的系統一致
c.setTimeInMillis(System.currentTimeMillis
()); c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); c.set(Calendar.DAY_OF_MONTH, 1); //星期對應數字 int day = c.get(Calendar.DAY_OF_WEEK); int firstDay = 0; switch (day - 1) { case 0: firstDay = 1 + 1; break; case 1: firstDay = 1
; break; case 2: firstDay = 1 + 6; break; case 3: firstDay = 1 + 5; break; case 4: firstDay = 1 + 4; break; case 5: firstDay = 1
+ 3; break; case 6: firstDay = 1 + 2; break; } if ((dayOFMonth + 1 - firstDay) % 7 == 0) { weeks = (dayOFMonth + 1 - firstDay) / 7; } else { weeks = (dayOFMonth + 1 - firstDay) / 7 + 1; } System.out.println("=====" + firstDay + " " + dayOFMonth + " " + dayCurrentMonth + " " + weeks + " " + month); if (dayCurrentMonth < firstDay) { --month; getDayOfWeek(); } else { for (int i = 1; i <= weeks; i++) { if (dayCurrentMonth < firstDay + 7 * i && dayCurrentMonth <= dayOFMonth) { week = i; break; } } }