获取某月的天数、给定日期为该年的第几日

1.获取某月的天数

Calendar calendar = Calendar.getInstance();

calendar.set(Calendar.YEAR, 2020);

calendar.set(Calendar.MONTH, month - 1);// 此处月份要减一,具体原理不知,大概是类似数组下标吧

System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH));

2.给定日期为该年的第几日

import java.util.Calendar;

import java.util.Scanner;

public class Hello {

  public static void main(String[] args) {

      Scanner scanner = new Scanner(System.in);

      int year = scanner.nextShort();

      int month = scanner.nextByte();

      int day = scanner.nextByte();

      Days days = new Days(year, month, day);

      System.out.println("给定日期的天数为该年的第" + days.getDay() + "日");

  }

}

/**

* 自定义类

* 功能:根据日期,获取给定日期为该年的第几天

* @author ZWK

*/

class Days {

  // jdk自带日历类

  private Calendar calendar = Calendar.getInstance();

  // 构造函数,传入日期,并初始化 Calendar类

  public Days(int year, int month, int day) {

      // 这里month-1是因为,Calendar类中月份表示是从0月开始的,0月也就是代表1月,与数组下标相同

      calendar.set(year, month - 1, day);

  }

  public int getDay() {

      // 创建int类型用以存放天数,默认值为当前的给定日期的天数

      int days = calendar.get(Calendar.DATE);

      // 从当前的上一个月份至0月份循环(0月份指一月)

      for (int i = calendar.get(Calendar.MONTH) - 1; i >= 0; i--) {

        // 将i设置为月份

        calendar.set(Calendar.MONTH, i);

        // days+=从当前月的上一个月份开始至0月份每个月份的天数

        days += calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

      }

      return days;

  }

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容