1. 程式人生 > >java獲取當前年的每一個月份的第一天和最後一天

java獲取當前年的每一個月份的第一天和最後一天

實現2月的平年瑞年最後天數

首先先了解一下日曆的兩個方法

getLeastMaximum

getActualMaximum

import java.text.SimpleDateFormat;
import java.util.Calendar;
public class DateUtil {
public static String getFirstDayOfMonth(int month) {
     Calendar cal = Calendar.getInstance();
     // 設定月份
     cal.set(Calendar.MONTH, month - 1);
     // 獲取某月最小天數
     int firstDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
     // 設定日曆中月份的最小天數
     cal.set(Calendar.DAY_OF_MONTH, firstDay);
     // 格式化日期
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
     String firstDayOfMonth = sdf.format(cal.getTime())+" 00:00:00";
     return firstDayOfMonth;
 }
/**
 * 獲得該月最後一天
 * 
 * @param year
 * @param month
 * @return
 */
 public static String getLastDayOfMonth(int month) {
    Calendar cal = Calendar.getInstance();
    // 設定月份
    cal.set(Calendar.MONTH, month - 1);
    // 獲取某月最大天數
    int lastDay=0;
   //2月的平年瑞年天數
   if(month==2) {
     lastDay = cal.getLeastMaximum(Calendar.DAY_OF_MONTH);
   }else {
      lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
   }
    // 設定日曆中月份的最大天數
     cal.set(Calendar.DAY_OF_MONTH, lastDay);
    // 格式化日期
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String lastDayOfMonth = sdf.format(cal.getTime())+" 23:59:59";
    return lastDayOfMonth;
 }
}

最後呼叫

public static void main(String[] args) {
 Integer time[] = {1,2,3,4,5,6,7,8,9,10,11,12}; 
 for (Integer integer : time) {
 System.out.println(DateUtil.getFirstDayOfMonth(integer));
 System.out.println(DateUtil.getLastDayOfMonth(integer));
 }
}