题意整理。

  • 输入任意一个年份,输出该年内各个月份的天数。

方法一(循环)

1.解题思路

  • 首先通过循环获取各个月份。
  • 在每一轮循环中,设置年月日,然后通过getActualMaximum()方法,得到某个月日期的最大值,即是当前月的天数。

图解展示: alt

2.代码实现

import java.util.Calendar;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        int year = console.nextInt();

        //获取Calendar的实例
        Calendar calendar=Calendar.getInstance();
        //循环遍历所有的月份
        for(int month=1;month<=12;month++){
            //设置年、月、日
            calendar.set(year,month,0);
            //输出对应年份各个月的天数
            System.out.println(year+"年"+month+"月:"+calendar.getActualMaximum(Calendar.DATE)+"天");
        }

    }
}

3.复杂度分析

  • 时间复杂度:循环只需执行12次,所以时间复杂度为O(1)O(1)O(1)
  • 空间复杂度:不需要额外的空间,所以空间复杂度为O(1)O(1)O(1)