输入一个年份,比如2008年,然后得到一个天数的list,这个list的size是365,list(0)=20080101,list(1)=20080102......list(364)=20081231

解决方案 »

  1.   

    每一年除了2月份日期有可能变,其他的就都一样了吧?
    用switch-case拼串呗
      

  2.   

    import java.util.ArrayList;
    import java.util.List;
    public class DayList {

    private int year = 1900;

    private int[][] monthLimit = new int[12][1];

    public boolean isLeapYear(int year) {
    return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
    }

    public DayList(int year) {
    monthLimit[0][0] = 31;
    if (isLeapYear(year)) {
    monthLimit[1][0] = 29;
    } else {
    monthLimit[1][0] = 28;
    }
    monthLimit[2][0] = 31;
    monthLimit[3][0] = 30;
    monthLimit[4][0] = 31;
    monthLimit[5][0] = 30;
    monthLimit[6][0] = 31;
    monthLimit[7][0] = 31;
    monthLimit[8][0] = 30;
    monthLimit[9][0] = 31;
    monthLimit[10][0] = 30;
    monthLimit[11][0] = 31;
    this.year = year;
    }

    public List getDayList() {
    List dayList = new ArrayList();
    for (int monthCount = 0; monthCount < 12; monthCount++) {
    for (int dayCount = 1; dayCount <= monthLimit[monthCount][0]; dayCount++) {
    dayList.add(year + fillZero(monthCount + 1) + fillZero(dayCount));
    }
    }
    return dayList;
    }

    public String fillZero(int target) {
    return fillZero(String.valueOf(target));
    }

    public String fillZero(String target) {
    if (target.length() < 2) {
    return "0" + target;
    }
    return target;
    }
    public static void main(String args[]) {
    List list = new DayList(2004).getDayList();
    for (int index = 0; index < list.size(); index++) {
    System.out.println(list.get(index));
    }
    }
    }