JavaSE-13.2.4【Calendar类、案例】
1 package day4.haifei02; 2 3 import java.util.Calendar; 4 5 /* 6 2.4 Calendar类 7 日历类 8 Calendar 为特定瞬间与一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法 9 Calendar 提供了一个类方法 getInstance 用于获取这种类型的一般有用的对象。该方法返回一个Calendar 对象。 10 其日历字段已使用当前日期和时间初始化:Calendar rightNow = Calendar.getInstance(); 11 常用方法 12 public int get(int field) 返回给定日历字段的值 13 public abstract void add(int field, int amount) 根据日历的规则,将指定的时间量添加或减去给定的日历字段 14 public final void set(int year,int month,int date) 设置当前日历的年月日 15 */ 16 public class CalendarDemo { 17 public static void main(String[] args) { 18 Calendar cal = Calendar.getInstance(); //获取日历类对象;其实质通过多态实现 19 System.out.println(cal); 20 21 int year = cal.get(Calendar.YEAR); 22 int month = cal.get(Calendar.MONTH) + 1; //注意:默认月从0开始计数 23 int day = cal.get(Calendar.DATE); 24 System.out.println(year + "年" + month + "月" + day + "日"); 25 26 //需求1:三年前的今天 27 cal.add(Calendar.YEAR, -3); 28 year = cal.get(Calendar.YEAR); 29 month = cal.get(Calendar.MONTH) + 1; 30 day = cal.get(Calendar.DATE); 31 System.out.println(year + "/" + month + "/" + day); 32 33 //需求2:十年后的五天前 34 cal.add(Calendar.YEAR, 10); 35 cal.add(Calendar.DATE, -5); 36 year = cal.get(Calendar.YEAR); 37 month = cal.get(Calendar.MONTH) + 1; 38 day = cal.get(Calendar.DATE); 39 System.out.println(year + "-" + month + "-" + day); 40 41 cal.set(1996, 9, 18); 42 year = cal.get(Calendar.YEAR); 43 month = cal.get(Calendar.MONTH); 44 day = cal.get(Calendar.DATE); 45 System.out.println(year + "." + month + "." + day); 46 } 47 }
1 package day4.haifei02; 2 3 import java.util.Calendar; 4 import java.util.Scanner; 5 6 /* 7 2.5 案例-二月天 8 需求:获取任意一年的二月有多少天 9 思路:年来自键入,月设置为3月(默认月从0开始,所以设置值为2),日设置为1日 10 3月1日往前推一天就是2月最后一天,即当年2月总天数 11 */ 12 public class CalendarTest { 13 public static void main(String[] args) { 14 Scanner sc = new Scanner(System.in); 15 System.out.println("请输入年份:"); 16 int year = sc.nextInt(); 17 18 Calendar cal = Calendar.getInstance(); 19 cal.set(year, 2, 1); //设置年月日(某年的3月1日) 20 // System.out.println(cal.get(Calendar.MONTH)); //输出2,实际为3月 21 22 cal.add(Calendar.DATE, -1); //往前推一天 23 24 int num = cal.get(Calendar.DATE); 25 System.out.println(year + "年2月有" + num + "天"); 26 } 27 }