天天看点

常见对象----------Calendar类

一.

package com.pg.otherclass;

import java.util.Calendar;

public class Demo8_Calendar {

	public static void main(String[] args) {
		Calendar c = Calendar.getInstance();		//父类引用指向子类对象
		//System.out.println(c);//证明重写了toString方法打印了对象中所有的属性
		System.out.println(c.get(Calendar.YEAR));  //通过字段获取对应的值
		System.out.println(c.get(Calendar.MONTH));
	}

}
           

二.Calendar类的概述和获取日期的方法,add()和set()方法

A:Calendar类的概述

        Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

 B:成员方法          

public static Calendar getInstance()

 public int get(int field)

 C:成员方法          

public void add(int field,int amount)

public final void set(int year,int month,int date)

  D:示例

          Calendar类的成员方法使用

package com.pg.otherclass;

import java.util.Calendar;

public class Demo9_Calendar {

	
	public static void main(String[] args) {
		//demo1();
		Calendar c = Calendar.getInstance();//父类引用指向子类对象
		//c.add(Calendar.MONTH, -1);//对指定的字段进行向前减或向后加
		//c.set(Calendar.YEAR, 2000);	//修改指定字段
		c.set(2000, 7, 8);
		
		System.out.println(c.get(Calendar.YEAR) + "年" + getNum((c.get(Calendar.MONTH)+1)) 
				+ "月" + getNum(c.get(Calendar.DAY_OF_MONTH)) + "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));
	}

	public static void demo1() {
		Calendar c = Calendar.getInstance();	//父类引用指向子类对象
		//System.out.println(c);
		System.out.println(c.get(Calendar.YEAR));//通过字段获取年
		System.out.println(c.get(Calendar.MONTH));//通过字段后期月,但是月是从0开始编号的
		System.out.println(c.get(Calendar.DAY_OF_MONTH));//月中的第几天
		System.out.println(c.get(Calendar.DAY_OF_WEEK));//周日是第一天,周六是最后一天
		
		System.out.println(c.get(Calendar.YEAR) + "年" + getNum((c.get(Calendar.MONTH)+1)) 
				+ "月" + getNum(c.get(Calendar.DAY_OF_MONTH)) + "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));
	}
	
	/*
	 * 将星期存储表中进行查表
	 * 1,返回值类型String
	 * 2,参数列表int week
	 */
	
	public static String getWeek(int week) {
		String[] arr = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
		
		return arr[week];
	}
	
	/*
	 * 如果是个数数字前面补0
	 * 1,返回值类型String类型
	 * 2,参数列表,int num
	 */
	public static String getNum(int num) {
		/*if(num > 9) {
			return "" + num;
		}else {
			return "0" + num;
		}*/
		return num > 9 ? "" + num : "0" + num;
	}
}
           

三.练习   如何获取任意年份是平年还是闰年

需求:键盘录入任意一个年份,判断该年是闰年还是平年

package com.pg.test;

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

public class Test3 {

	/**
	 * *
	 * 需求:键盘录入任意一个年份,判断该年是闰年还是平年
	 * Calendar c = Calendar.getInstance();
	 * 
	 * 分析:
	 * 1,键盘录入年Scanner
	 * 2,创建Calendar c = Calendar.getInstance();
	 * 3,通过set方法设置为那一年的3月1日
	 * 4,将日向前减去1
	 * 5,判断日是多少天,如果是29天返回true否则返回false
	 */
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入年份,判断该年份是闰年还是平年:");
		//int year = sc.nextInt();
		
		String line = sc.nextLine();	//录入数字字符串
		int year = Integer.parseInt(line);//将数字字符串转换成数字
		boolean b = getYear(year);
		System.out.println(b);
	}

	private static boolean getYear(int year) {
		//2,创建Calendar c = Calendar.getInstance();
		Calendar c = Calendar.getInstance();
		//设置为那一年的3月1日
		c.set(year, 2, 1);
		//将日向前减去1
		c.add(Calendar.DAY_OF_MONTH, -1);
		//判断是否是29天
		return c.get(Calendar.DAY_OF_MONTH) == 29;
	}

}
           

继续阅读