Java常用api-Calendar类

简介: Calendar类

第三章 Calendar类

3.1 概述

  • java.util.Calendar类表示一个“日历类”,可以进行日期运算。它是一个抽象类,不能创建对象,我们可以使用它的子类:java.util.GregorianCalendar类。
  • 有两种方式可以获取GregorianCalendar对象:
  • 直接创建GregorianCalendar对象;
  • 通过Calendar的静态方法getInstance()方法获取GregorianCalendar对象【本次课使用】

3.2 常用方法

方法名 说明
public static Calendar getInstance() 获取一个它的子类GregorianCalendar对象。
public int get(int field) 获取某个字段的值。field参数表示获取哪个字段的值,可以使用Calender中定义的常量来表示:Calendar.YEAR : 年Calendar.MONTH :月Calendar.DAY_OF_MONTH:月中的日期Calendar.HOUR:小时Calendar.MINUTE:分钟Calendar.SECOND:秒Calendar.DAY_OF_WEEK:星期
public void set(int field,int value) 设置某个字段的值
public void add(int field,int amount) 为某个字段增加/减少指定的值

3.3 get方法示例

public class Demo {

   public static void main(String[] args) {

       //1.获取一个GregorianCalendar对象

       Calendar instance = Calendar.getInstance();//获取子类对象

       //2.打印子类对象

       System.out.println(instance);

       //3.获取属性

       int year = instance.get(Calendar.YEAR);

       int month = instance.get(Calendar.MONTH) + 1;//Calendar的月份值是0-11

       int day = instance.get(Calendar.DAY_OF_MONTH);

       int hour = instance.get(Calendar.HOUR);

       int minute = instance.get(Calendar.MINUTE);

       int second = instance.get(Calendar.SECOND);

       int week = instance.get(Calendar.DAY_OF_WEEK);//返回值范围:1--7,分别表示:"星期日","星期一","星期二",...,"星期六"

       System.out.println(year + "年" + month + "月" + day + "日" +  

                           hour + ":" + minute + ":" + second);

       System.out.println(getWeek(week));

   }

   //查表法,查询星期几

   public static String getWeek(int w) {//w = 1 --- 7

       //做一个表(数组)

       String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};

       //            索引      [0]      [1]       [2]      [3]       [4]      [5]      [6]

       //查表

       return weekArray[w - 1];

   }

}

3.4 set方法示例:

public class Demo {

   public static void main(String[] args) {

       //设置属性——set(int field,int value):

       Calendar c1 = Calendar.getInstance();//获取当前日期

       //计算班长出生那天是星期几(假如班长出生日期为:1998年3月18日)

       c1.set(Calendar.YEAR, 1998);

       c1.set(Calendar.MONTH, 3 - 1);//转换为Calendar内部的月份值

       c1.set(Calendar.DAY_OF_MONTH, 18);

       int w = c1.get(Calendar.DAY_OF_WEEK);

       System.out.println("班长出生那天是:" + getWeek(w));

       

   }

   //查表法,查询星期几

   public static String getWeek(int w) {//w = 1 --- 7

       //做一个表(数组)

       String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};

       //            索引      [0]      [1]       [2]      [3]       [4]      [5]      [6]

       //查表

       return weekArray[w - 1];

   }

}

3.5 add方法示例:

public class Demo {

   public static void main(String[] args) {

       //计算200天以后是哪年哪月哪日,星期几?

       Calendar c2 = Calendar.getInstance();//获取当前日期

       c2.add(Calendar.DAY_OF_MONTH, 200);//日期加200

       int y = c2.get(Calendar.YEAR);

       int m = c2.get(Calendar.MONTH) + 1;//转换为实际的月份

       int d = c2.get(Calendar.DAY_OF_MONTH);

       int wk = c2.get(Calendar.DAY_OF_WEEK);

       System.out.println("200天后是:" + y + "年" + m + "月" + d + "日" + getWeek(wk));

   }

   //查表法,查询星期几

   public static String getWeek(int w) {//w = 1 --- 7

       //做一个表(数组)

       String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};

       //            索引      [0]      [1]       [2]      [3]       [4]      [5]      [6]

       //查表

       return weekArray[w - 1];

   }

}


相关文章
|
2月前
|
Java API 数据处理
Java新特性:使用Stream API重构你的数据处理
Java新特性:使用Stream API重构你的数据处理
|
2月前
|
Java 大数据 API
Java Stream API:现代集合处理与函数式编程
Java Stream API:现代集合处理与函数式编程
229 100
|
2月前
|
Java API 数据处理
Java Stream API:现代集合处理新方式
Java Stream API:现代集合处理新方式
261 101
|
2月前
|
安全 Java 数据建模
Java记录类:简化数据载体的新选择
Java记录类:简化数据载体的新选择
229 101
|
2月前
|
并行计算 Java 大数据
Java Stream API:现代数据处理之道
Java Stream API:现代数据处理之道
236 101
|
2月前
|
安全 Java 开发者
Java记录类:简化数据载体的新方式
Java记录类:简化数据载体的新方式
275 100
|
3月前
|
安全 IDE Java
Java记录类型(Record):简化数据载体类
Java记录类型(Record):简化数据载体类
383 120
|
1月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
81 4
|
1月前
|
IDE JavaScript Java
在Java 11中,如何处理被弃用的类或接口?
在Java 11中,如何处理被弃用的类或接口?
138 5
|
1月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
127 1