android 獲取一個月有多少周
阿新 • • 發佈:2019-02-15
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; } } }