クラスカレンダー
- カレンダークラスの概要
- メンバー方法
デモをテストコード:
package cn.itcast_01;
import java.util.Calendar;
/*
* Calendar:它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
*
* public int get(int field):返回给定日历字段的值。日历类中的每个日历字段都是静态的成员变量,并且是int类型。
*/
public class CalendarDemo {
public static void main(String[] args) {
// 其日历字段已由当前日期和时间初始化:
Calendar rightNow = Calendar.getInstance(); // 子类对象(多态思想)
// 获取年
int year = rightNow.get(Calendar.YEAR);
// 获取月
int month = rightNow.get(Calendar.MONTH);
// 获取日
int date = rightNow.get(Calendar.DATE);
System.out.println(year + "年" + (month + 1) + "月" + date + "日");
}
}
/*
* abstract class Person { public static Person getPerson() { return new
* Student(); } }
*
* class Student extends Person {
*
* }
*/
Dateクラス以前の研究では、我々は、フォーマットすることができたし、日付オブジェクトを作成するのではなく、どのように我々は、そのような私たちは日以内のこれらの部分に追加するにはどうすればよい時間、日、または数分?などの日付データを、設定し、それのアクセス特定の部品ことができます値には?答えは、使用することですカレンダーカテゴリを。
カレンダー機能は、Dateクラスよりも、だけでなく、より複雑よりもDateクラスの実装で強力なの多くが好き。
Calendarクラスは抽象クラスであり、実際の使用における実装は、特定のサブクラス、オブジェクト、オブジェクトの作成には、唯一のgetInstanceメソッドを使用して作成する必要があり、プログラマに対して透過的です。
システムの現在の日付を表すCalendarオブジェクトを作成します。
Calendar c = Calendar.getInstance();//默认是当前日期
Calendarオブジェクト指定した日付の作成
使用Calendarクラスは、特定の時間を表し、あなたが最初のオブジェクトカレンダーを作成し、完了するために、オブジェクトの日付パラメータを設定する必要があります。
//创建一个代表2009年6月12日的Calendar对象
Calendar c1 = Calendar.getInstance();
c1.set(2009, 6 - 1, 12);
Calendarオブジェクトクラスのフィールド型
次の定数とCalendarクラスは、実際には、JDKにずっとこのアイデアのように異なる意味を、使用されてきました
定数 | 説明 |
---|---|
暦年 | 年 |
Calendar.MONTH | 月 |
Calendar.DATE | 日付 |
Calendar.DAY_OF_MONTH | 日付、およびフィールド上記のように正確に同じ意味 |
Calendar.HOUR | 12時間のH |
Calendar.HOUR_OF_DAY | 24時間制の時間 |
Calendar.MINUTE | 分 |
Calendar.SECOND | 第2 |
Calendar.DAY_OF_WEEKの | 曜日 |
メンバーの方法:
- 公共のボイドの追加(int型 フィールド、INT 金額):指定されたカレンダフィールドと対応する時間は、現在のカレンダーを操作します。
- 最終的な空のSETパブリック(int型の 年、int型 月、int型のDATE):現在のカレンダーの日付を設定
カレンダー情報提供クラスオブジェクト
- 設定された設定
Calendar c1 = Calendar.getInstance();
コール:
public final void set(int year,int month,int date)
c1.set(2009, 6, 12);//把Calendar对象c1的年月日分别设这为:2009、6、12
使用したフィールドタイプ
唯一のフィールドを設定する場合は、そのような値の日として、この方法は、以下のセットを使用することができます。
public void set(int field,int value)
C1オブジェクトは、日付が10に設定されている表し、他のすべての値が再計算されます
c1.set(Calendar.DATE,10);
C1オブジェクトは年が2008年に設定されている表し、他のすべての値が再計算されます
c1.set(Calendar.YEAR,2008);
- 設定を追加
Calendar c1 = Calendar.getInstance();
把c1对象的日期加上10,也就是c1也就表示为10天后的日期,其它所有的数值会被重新计算
c1.add(Calendar.DATE, 10);
把c1对象的日期减去10,也就是c1也就表示为10天前的日期,其它所有的数值会被重新计算
c1.add(Calendar.DATE, -10);
代码测试如下:
package cn.wen_02;
import java.util.Calendar;
public class CalendarDemo {
public static void main(String[] args) {
// 获取当前的日历时间
Calendar c = Calendar.getInstance();
// 获取年
int year = c.get(Calendar.YEAR);
// 获取月
int month = c.get(Calendar.MONTH);
// 获取日
int date = c.get(Calendar.DATE);
System.out.println(year + "年" + (month + 1) + "月" + date + "日");
//add
// // 5年前
// c.add(Calendar.YEAR, -5);
// // 获取年
// year = c.get(Calendar.YEAR);
// // 获取月
// month = c.get(Calendar.MONTH);
// // 获取日
// date = c.get(Calendar.DATE);
// System.out.println(year + "年" + (month + 1) + "月" + date + "日");
// 5年后的10天前
c.add(Calendar.YEAR, 5);
c.add(Calendar.DATE, -10);
// 获取年
year = c.get(Calendar.YEAR);
// 获取月
month = c.get(Calendar.MONTH);
// 获取日
date = c.get(Calendar.DATE);
System.out.println(year + "年" + (month + 1) + "月" + date + "日");
System.out.println("--------------");
//set
c.set(2011, 11, 11);
// 获取年
year = c.get(Calendar.YEAR);
// 获取月
month = c.get(Calendar.MONTH);
// 获取日
date = c.get(Calendar.DATE);
System.out.println(year + "年" + (month + 1) + "月" + date + "日");
}
}
小练习:获取任意一年的二月有多少天
分析:
A:键盘录入任意的年份
B:设置日历对象的年月日
年就是A输入的数据
月是2
日是1
C:把时间往前推一天,就是2月的最后一天
D:获取这一天输出即可
package cn.itcast_03;
import java.util.Calendar;
import java.util.Scanner;
public class CalendarTest {
public static void main(String[] args) {
// 键盘录入任意的年份
Scanner sc = new Scanner(System.in);
System.out.println("请输入年份:");
int year = sc.nextInt();
// 设置日历对象的年月日
Calendar c = Calendar.getInstance();
c.set(year, 2, 1); // 其实是这一年的3月1日
// 把时间往前推一天,就是2月的最后一天
c.add(Calendar.DATE, -1);
// 获取这一天输出即可
System.out.println(c.get(Calendar.DATE));
}
}