Calendar类的概述和获取日期的方


Calendar 类是一个抽象类,

	它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,
	并为操作日历字段(例如获得下星期的日期)提供了一些方法。
	并为操作日历字段(例如获得下星期的日期)提供了一些方法。
	Date(int year, int month, int date) 
	          已过时。 从 JDK 1.1 开始,由 Calendar.set(year + 1900, month, date) 
	          或 GregorianCalendar(year + 1900, month, date) 取代
	为替换Date类
 

java.lang.Object
——java.util.Calendar

直接已知子类: 
GregorianCalendar 


与其他语言环境敏感类一样,Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象
 Calendar rightNow = Calendar.getInstance();
public static Calendar getInstance()
	使用默认时区和语言环境获得一个日历。返回的 Calendar 基于当前时间,使用了默认时区和默认语言环境。


public abstract void add(int field, int amount)
	根据日历的规则,为给定的日历字段添加或减去指定的时间量。
	例如,要从当前日历时间减去 5 天,可以通过调用以下方法做到这一点: 
	add(Calendar.DAY_OF_MONTH, -5)。 
	参数:
	field - 日历字段。
	amount - 为字段添加的日期或时间量。
public void set(int field,int value)
	将给定的日历字段设置为给定值。不管处于何种宽松性模式下,该值都不由此方法进行解释。 
public final void set(int year,int month,int date)
	设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。
	保留其他日历字段以前的值。如果不需要这样做,则先调用 clear()。 
	参数:
	year - 用来设置 YEAR 日历字段的值。
	month - 用来设置 MONTH 日历字段的值。Month 值是基于 0 的。例如,0 表示 January。
	date - 用来设置 DAY_OF_MONTH 日历字段的值。


public class j {

	/**
	 * @param args
	 */
	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));//月是从0开始编号的
		System.out.println(c.get(Calendar.DAY_OF_MONTH));//月中的第几天
		System.out.println(c.get(Calendar.DAY_OF_WEEK_IN_MONTH));//1,国际上,周日是第一天
		
		System.out.println(c.get(Calendar.YEAR) + "年" + 
				   (c.get(Calendar.MONTH)+1) + "月" + 
				    c.get(Calendar.DAY_OF_MONTH) + "日" + 
				   getWeek(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)));
		
		Calendar c1 = Calendar.getInstance();
		System.out.println(c1.get(Calendar.YEAR) + "年" + 
				   (c1.get(Calendar.MONTH)+1) + "月" + 
				    c1.get(Calendar.DAY_OF_MONTH) + "日" + 
				   getWeek(c1.get(Calendar.DAY_OF_WEEK)));
		c1.add(Calendar.DAY_OF_MONTH, -5);
		System.out.println(c1.get(Calendar.YEAR) + "年" + 
				   (c1.get(Calendar.MONTH)+1) + "月" + 
				    c1.get(Calendar.DAY_OF_MONTH) + "日" + 
				   getWeek(c1.get(Calendar.DAY_OF_WEEK)));
		
		Calendar c2 = Calendar.getInstance();
		//c2.set(Calendar.YEAR, 2000);
		c2.set(2000, 7, 8);//2000年8月8日星期二
		System.out.println(c2.get(Calendar.YEAR) + "年" + 
				   (c2.get(Calendar.MONTH)+1) + "月" + 
				    c2.get(Calendar.DAY_OF_MONTH) + "日" + 
				   getWeek(c2.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;
	}
}



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值