求一年中星期一的日期


import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;

public class DateTest {

    /**
     * 輸出給定年的所有是星期一的日期
     *
     * @param year 年,4位整數
     * @return 格式化後的昌期
     */
    public static List<String> getMondays(int year) {
        List<String> mondays = new ArrayList<String>();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Calendar c = new GregorianCalendar();
        // 設置一年中的1月1日
        c.set(year, 0, 1);
        while (c.get(Calendar.YEAR) == year) {
            if (c.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY) {
                // 格式化星期一的日期
                mondays.add(sdf.format(c.getTime()));
                // 移動到下一個星期一
                c.add(Calendar.DAY_OF_WEEK, 7);
            } else {
                // c加一天,直到找到一年中的第一個星期一爲止
                c.add(Calendar.DAY_OF_WEEK, 1);
            }
        }
        return mondays;
    }

    public static void main(String[] args) {
        System.out.println(getMondays(2010));
    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章