获取某一年某个月的每一天

private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@Test
public void test_getMonthFullDay(){
    System.out.println(getMonthFullDay(2016, 7,23));
}
/**
 * 某一年某个月的每一天
 */
public static List<String> getMonthFullDay(int year , int month,int day){
    List<String> fullDayList = new ArrayList<String>();
    if(day <= 0 ) day = 1;
    Calendar cal = Calendar.getInstance();// 获得当前日期对象
    cal.clear();// 清除信息
    cal.set(Calendar.YEAR, year);
    cal.set(Calendar.MONTH, month - 1);// 1月从0开始
    cal.set(Calendar.DAY_OF_MONTH, day);// 设置为1号,当前日期既为本月第一天
    int count = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
    for (int j = 0; j <= (count-1);) {
        if(sdf.format(cal.getTime()).equals(getLastDay(year, month)))
            break;
        cal.add(Calendar.DAY_OF_MONTH, j == 0 ? +0 : +1);
        j++;
        fullDayList.add(sdf.format(cal.getTime()));
    }
    return fullDayList;
}
public static String getLastDay(int year,int month){
    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.YEAR, year);
    cal.set(Calendar.MONTH, month);
    cal.set(Calendar.DAY_OF_MONTH, 0);
    return sdf.format(cal.getTime());
}

 

posted @ 2021-06-30 17:17  哈尔的卡西法  阅读(112)  评论(0)    收藏  举报