31Java中的常用类-----Calendar类

Calendar类

相关简介都在代码中

package day03;

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

/**
 * java.util.Calendar
 * 日历类
 * 该类是一个抽象类,封装了对时间的相关操作
 * 常用的实现类是格里高利历(阳历)
 * 使用 日历类是为了对时间进行相关的操作
 * 比如计算时间
 * @author 
 *
 */
public class CalendarDemo1 {
	public static void main(String[] args) {
		/**
		 * 使用Calendar的静态方法创建实例
		 * 该方法会根据当前系统所在地区创建一个
		 * 相应的实现,通常是GregorianCalendar
		 * 默认的日历实例表示当前系统时间
		 */
		Calendar calendar = Calendar.getInstance();
		/**
		 * toString不能直观反应表示的日期
		 */
		System.out.println(calendar);
		/**
		 * Calendar与Date之间的转换
		 * 
		 * 
		 * Calendar-> Date
		 * Date getTime()
		 * Calendar提供了方法getTime()
		 * 返回一个Date对象,该对象表示的时间就是
		 * 当前Calendar表示的时间
		 * 
		 */
		Date date = calendar.getTime();
		System.out.println(date);
		//表示明天这一时刻
		date.setTime(date.getTime()+1000*60*60*24);
		System.out.println(date);
		/**
		 * Date -> Calendar
		 * void setTime(Date date)
		 * Calendar的setTime方法可以时当前
		 * Calendar表示给定的Date所表示的Date所表示的时间
		 * 
		 */
		//Calendar也表示明天这一刻了
		calendar.setTime(date);
		System.out.println(calendar);
	}

}

package day03;

import java.util.Calendar;

/**
 * Calendar提供了针对不同时间分量单独设置
 * 值的方法
 * void set(int field,int value)
 * 其中第一个参数为:时间分量,例如:年,月,日等等
 * 第二个参数为对应的值
 * 时间分量是一个int值,使用Calendar提供的常量
 * @author 
 *
 */
public class CalendarDemo2 {

	public static void main(String[] args) {
		Calendar calendar = Calendar.getInstance();
		System.out.println(calendar.getTime());
		/**
		 * 设置Calendar,使其表示
		 * 2008-08-08 20:08:08
		 */
		//设定年
		calendar.set(Calendar.YEAR, 2008);
		System.out.println(calendar.getTime());
		/**
		 * 设置月
		 * 月从0开始,0表示1月
		 * 或者可以使用具体月的常量
		 */
		//calendar.set(Calendar.MONTH, Calendar.AUGUST);
		calendar.set(Calendar.MONTH, 7);
		System.out.println(calendar.getTime());
		/**
		 * 设置日
		 * 对应时间分量常用的:
		 * DATE:月中天
		 * DAY_OF_MONTH:月中的天,与DATE一致
		 * DAY_OF_WEEK:周中的天,星期几
		 * DAY_OF_YEAR:年中的天
		 */
		calendar.set(Calendar.DAY_OF_MONTH, 8);
		System.out.println(calendar.getTime());
		//设置时分秒
		calendar.set(Calendar.HOUR_OF_DAY, 20);
		calendar.set(Calendar.MINUTE, 8);
		calendar.set(Calendar.SECOND, 8);
		System.out.println(calendar.getTime());

	}

}

package day03;

import java.util.Calendar;

/**
 * 获取一个Calender表示的日期中
 * 各个时间分量对应的值
 * @author 
 *
 */
public class CalendarDemo3 {

	public static void main(String[] args) {
		Calendar calendar = Calendar.getInstance();
		/**
		 * int get(int field)
		 * 获取对应时间分量的值
		 */
		//获取年
		int year = calendar.get(Calendar.YEAR);
		//获取月
		int month = calendar.get(calendar.MONTH)+1;
		//获取日
		int day = calendar.get(calendar.DATE);
		System.out.println(year+"-"+month+"-"+day);
		//获取时分秒也是一样的方法
		//查看星期几?
		int dow = calendar.get(Calendar.DAY_OF_WEEK);
		System.out.println("周"+(dow==1?7:dow-1));
		String[] data= {"日","一","二","三","四","五","六"};
		System.out.println("周"+data[dow-1]);
		//到今天为止,今年已经过了多少天
		int doy = calendar.get(Calendar.DAY_OF_YEAR);
		System.out.println(year+"年已经过了"+doy+"天");
 
	}

}

package day03;
/**
 * 获取一个时间分量所允许的最大值
 * @author 
 *
 */
import java.util.Calendar;

public class CalendarDemo4{

	public static void main(String[] args) {
		Calendar calendar = Calendar.getInstance();
		//当月总共多少天?
		int days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
		System.out.println(days);
		//查看2016年2月多少天?
		calendar.set(Calendar.YEAR, 1);
		days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
		//今年总共多少天?
		days = calendar.getActualMaximum(Calendar.DAY_OF_YEAR);
		System.out.println("今年共"+days+"天");
	}

}

package day03;

import java.util.Calendar;

/**
 * Calendar中计算时间的方法
 * void add(int field,int value)
 * 对指定的时间分量加上给定的值,若给定的值是负数
 * 则减去给定的值
 * @author 
 *
 */
public class CalendarDemo5 {

	public static void main(String[] args) {
		/**
		 * 查看三年两个月零一天后的日期
		 */
		Calendar calendar = Calendar.getInstance();
		//查看3年后
		calendar.add(Calendar.YEAR, 3);
		System.out.println(calendar.getTime());
		//再查看2个月后
		calendar.add(Calendar.MONTH, 2);
		System.out.println(calendar.getTime());
		//再查看8天以后
		calendar.add(Calendar.DAY_OF_YEAR, 8);
		System.out.println(calendar.getTime());
		//再查看5小时以前
		calendar.add(Calendar.HOUR_OF_DAY, -5);
		System.out.println(calendar.getTime());
		
		
		/**
		 * 遇到类似开发需求:
		 * 要求用户输入一个日期,然后对该日期进行一系列
		 * 的运算,再将计算后的日期显示给用户时。
		 * 流程如下:
		 * 1.获取用户输入的日期字符串
		 * 2.使用SimpleDateFormat将其转换为Date
		 * 3.创建一个Calendar,使其表示Date表示的日期
		 * 4.使用Calendar根据需求计算时间
		 * 5.将Calendar转换为一个Date
		 * 6.使用SimpleDateFormat将Date转换为字符串后显示给用户
		 */
		
	}

}

猜你喜欢

转载自blog.csdn.net/qq_44787898/article/details/103075048