3.10 Calendar与GregorianCalendar的基本使用方法

简介

      Calendar是一个抽象类。 GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。
      位于java.util包中

日历类的基本使用方法

代码

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

/**
 * 测试日历类的使用
 * Calendar是抽象类
 * @author dxt
 *
 */
public class TestCalendar {
	public static void main(String[] args){
		//GregorianCalendar 是Calendar的一个具体实现类,用来建立一个日期对象(3000年11月1号,20点30分30秒)
		Calendar calendar = new GregorianCalendar(3000, 10, 01, 20, 30, 30);
		//打印所有信息
		System.out.println(calendar);
		//1. 获取日历对象的年份、月份等内容
		int year = calendar.get(Calendar.YEAR);
		int month = calendar.get(Calendar.MONTH);	//0-11为月份,0是1月,1是2月
		int day = calendar.get(Calendar.DAY_OF_YEAR);
		int weekday = calendar.get(Calendar.DAY_OF_WEEK);//1-7:1是星期天,2是星期一
		System.out.println(year+"/"+month+"/"+day);
		
		//2. 设置日历的相关元素, 空构造方法将当前时间作为数据进行初始化
		Calendar c2 = new GregorianCalendar();
		System.out.println(c2);
		c2.set(Calendar.YEAR, 2100);	//将日期年份设为2100
		System.out.println(c2.get(Calendar.YEAR));
		
		//3. 日期的计算
		Calendar c3 = new GregorianCalendar();
		c3.add(Calendar.YEAR, 100);	//往后100年
		c3.add(Calendar.DATE, -100);	//向前100天
		System.out.println(c3.get(Calendar.YEAR));
		
		//4. 日历对象和日期对象的转化
		Date d4 = c3.getTime();	//日期对象-->时间对象,使用getTime()方法
		Calendar c4 = new GregorianCalendar();
		c4.setTime(new Date());	//时间对象-->日期对象,使用setTime()方法
		printCalendar(c4);
	}
	/**
	 * 将日期按格式输出
	 * 2019/10/01 20:30:30
	 * @param c
	 */
	public static void printCalendar(Calendar c){
		int year = c.get(Calendar.YEAR);
		int month = c.get(Calendar.MONTH)+1;
		int day = c.get(Calendar.DAY_OF_MONTH);
		int hour = c.get(Calendar.HOUR_OF_DAY);	//24小时制
		int minute = c.get(Calendar.MINUTE);
		int second = c.get(Calendar.SECOND);
		System.out.println(year+"/"+month+"/"+day+" "+hour+":"+minute+":"+second);
	}
}

控制台显示日历的程序

代码:

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;

/**
 * 控制台显示日历
 * @author dxt
 *
 */
public class TestCalendar2 {
	public static void main(String[] args) throws ParseException{
		//1. 显示日期输入格式
		String str = "2020-10-10";
		System.out.println("日期输入格式:" + str);
		//2. 接收输入日期
		Scanner scan = new Scanner(System.in);
		str = scan.nextLine();
		//3. 将输入的日期字符串 转为 日期对象
		DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
		Date date = df.parse(str);
		//4. 将日期对象转为 日历对象
		Calendar c = new GregorianCalendar();
		c.setTime(date);
		int day = c.get(Calendar.DAY_OF_MONTH);
		//5. 打印日历格式
		System.out.println("日\t一\t二\t三\t四\t五\t六");
		//6. 打印日历
		//6.1 设置为改月第一天,便于知道从周几开始打印
		c.set(Calendar.DAY_OF_MONTH, 1);
		for(int i=0; i<c.get(Calendar.DAY_OF_WEEK)-1;i++){
			System.out.print("\t");
		}
		//6.2 从第一天开始打印
		int days = c.getActualMaximum(Calendar.DATE);
		for(int i=0; i<days; i++){
			if(c.get(Calendar.DAY_OF_MONTH) == day){
				System.out.print(c.get(Calendar.DAY_OF_MONTH)+"*\t");
			}
			else{
				System.out.print(c.get(Calendar.DAY_OF_MONTH)+"\t");
			}
			//如果到周六后,换行
			if(c.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY){
				System.out.println();
			}
			//月份+1
			c.add(Calendar.DAY_OF_MONTH, 1);
		}
		
	}
}

结果:
calendar

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值