80. Calendar日历类

Calendar 类是一个抽象类,为我们提供了关于日期计算的相关功能,比如:年、月、日、时、分、秒的展示和计算。

GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。

5种Calendar构造函数
GregorianCalendar()无参构造函数

在这里插入图片描述

//初始化Calendar对象
//Calendar无参构造函数
    Calendar calendar1 = new GregorianCalendar();  
//Calendar是抽象类,要用实现类GregorianCalendar new
    printCalendar(calendar1);  //自定义的函数
GregorianCalendar(int year, int month, int dayOfMonth)

在这里插入图片描述

		Calendar calendar2 = new GregorianCalendar(2035, 10, 9);  
		printCalendar(calendar2);
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute);

在这里插入图片描述

		Calendar calendar3 = new GregorianCalendar(2035, 10, 9, 22, 10);
		printCalendar(calendar3);
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second);

在这里插入图片描述

		Calendar calendar4 = new GregorianCalendar(2035, 10, 9, 22, 10, 50);
		printCalendar(calendar4);
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second, int millis);

在这里插入图片描述

	//构造函数不可视

在Ecilpse2018中不可见

获得日期相关元素get
	int year = calendar3.get(Calendar.YEAR);
	int month = calendar3.get(Calendar.MONTH);  //january-december月从0-11
	int weekday = calendar3.get(Calendar.DAY_OF_WEEK);  //1-7 星期日1,星期一2,...
	int day1 = calendar3.get(Calendar.DATE);
	int day2 = calendar3.get(Calendar.DAY_OF_MONTH);
设置日期的元素set
		Calendar c1 = new GregorianCalendar();  //无参构造函数初始化的对象保存系统当前时间
		printCalendar(c1);
		c1.set(Calendar.YEAR, 5050);
		printCalendar(c1);
日期计算
		Calendar c2 = new GregorianCalendar();
		c2.add(Calendar.YEAR, -100);
		System.out.println(c2);
日期对象和时间对象的转化
		Date d = c2.getTime();  //日期对象转化为时间对象
		Calendar c3 = new GregorianCalendar();
		c3.setTime(d);  //将时间对象转化为日期对象
自定义一个打印日期的函数

打印效果: xxxx年xx月xx日 xx:xx:xx 周x

public static void printCalendar(Calendar c) {
		//打印: xxxx年xx月xx日 xx:xx:xx 周x
		
		int year = c.get(Calendar.YEAR);
		int month = c.get(Calendar.MONTH)+1;  //[0, 11]
		int dayOfMonths = c.get(Calendar.DAY_OF_MONTH);
		int dayweek = c.get(Calendar.DAY_OF_WEEK)-1; //[1, 7][日, 六]
		String dayweekStr = dayweek==0 ? "日":dayweek+"";
		
		int hour = c.get(Calendar.HOUR);
		int minute = c.get(Calendar.MINUTE);
		int second = c.get(Calendar.SECOND);
		
		System.out.println(year+"年"+month+"月"+dayOfMonths+"日"+hour+"时"+minute+"分"+second+"秒"+"  周"+dayweekStr);
	}


测试源码如下:

package yzy.commonclasses;

/*
 * 测试日期类Calendarde使用
 * GregorianCalendar->Calendar
 */

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class testCanlender {
	public static void main(String[] args) {
		
		
		//初始化Calendar对象
		//Calendar无参构造函数
		Calendar calendar1 = new GregorianCalendar();  
		//Calendar是抽象类,要用实现类GregorianCalendar new
		printCalendar(calendar1);
		
		//GregorianCalendar(int year, int month, int dayOfMonth);
		Calendar calendar2 = new GregorianCalendar(2035, 10, 9);  
		printCalendar(calendar2);
		
		
		//GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute);
		Calendar calendar3 = new GregorianCalendar(2035, 10, 9, 22, 10);
		printCalendar(calendar3);
		
		
		//GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second);
		Calendar calendar4 = new GregorianCalendar(2035, 10, 9, 22, 10, 50);
		printCalendar(calendar4);

		
		//GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second, int millis);
		//构造函数不可视
		
		
		//获得日期相关元素
		int year = calendar3.get(Calendar.YEAR);
		int month = calendar3.get(Calendar.MONTH);  //january-december月从0-11
		int weekday = calendar3.get(Calendar.DAY_OF_WEEK);  //1-7 星期日1,星期一2,...
		int day1 = calendar3.get(Calendar.DATE);
		int day2 = calendar3.get(Calendar.DAY_OF_MONTH);
		System.out.println(year);
		System.out.println(month);
		System.out.println(weekday);
		System.out.println(day1);
		System.out.println(day2);
		
		
		//设置日期的元素
		Calendar c1 = new GregorianCalendar();  //无参构造函数初始化的对象保存系统当前时间
		printCalendar(c1);
		c1.set(Calendar.YEAR, 5050);
		printCalendar(c1);
		
		//日期计算
		Calendar c2 = new GregorianCalendar();
		c2.add(Calendar.YEAR, -100);
		System.out.println(c2);
		
		
		//日期对象和时间对象的转化
		Date d = c2.getTime();  //日期对象转化为时间对象
		Calendar c3 = new GregorianCalendar();
		c3.setTime(d);  //将时间对象转化为日期对象
		
		
		printCalendar(c2);  //1920年2月7日2时24分58秒周6
		printCalendar(c3);  //1920年2月7日2时24分58秒周6
		printCalendar(c1);  //5050年2月7日2时25分40秒周4
	}
	
	public static void printCalendar(Calendar c) {
		//打印: xxxx年xx月xx日 xx:xx:xx 周x
		
		int year = c.get(Calendar.YEAR);
		int month = c.get(Calendar.MONTH)+1;  //[0, 11]
		int dayOfMonths = c.get(Calendar.DAY_OF_MONTH);
		int dayweek = c.get(Calendar.DAY_OF_WEEK)-1; //[1, 7][日, 六]
		String dayweekStr = dayweek==0 ? "日":dayweek+"";
		
		int hour = c.get(Calendar.HOUR);
		int minute = c.get(Calendar.MINUTE);
		int second = c.get(Calendar.SECOND);
		
		System.out.println(year+"年"+month+"月"+dayOfMonths+"日"+hour+"时"+minute+"分"+second+"秒"+"  周"+dayweekStr);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值