Calendar类的常见方法与基本使用
什么是Calendar类
由于java.util.Date设计中存在的一些问题,因此从jdk1.1之后,jdk中新增了java.util.Calendar类用于对日期类型处理;Calendar类由于是一个抽象类,因此无法直接实例化,如果需要获得Calendar的实例可以使用如下方法:
Calendar c
= Calendar
.getInstance();
Calendar常见方法
get(int field) 获取指定字段的值 ,如 c.get(Calendar.YEAR) 获得 2020set(int field,int value) 设置指定字段的值 ,如 c.set(Calendar,YEAR,2021)getActualMaximum(int field) 获取指定字段具备的最大值getTime() 获取当前日历所表示的java.util.Date对象getTimeInMillis() 获取当前日历所表示时间的毫秒数(从1970年1月1日 0时0分0秒开始)…
实例代码
public static void main(String
[] args
) {
Calendar c
= Calendar
.getInstance();
c
.set(Calendar
.DAY_OF_MONTH
,1);
System
.out
.println(c
);
int year
= c
.get(Calendar
.YEAR
);
System
.out
.println(year
);
int month
= c
.get(Calendar
.MONTH
);
System
.out
.println(month
);
int day
= c
.get(Calendar
.DAY_OF_MONTH
);
System
.out
.println(day
);
int hour
= c
.get(Calendar
.HOUR_OF_DAY
);
System
.out
.println(hour
);
int min
= c
.get(Calendar
.MINUTE
);
System
.out
.println(min
);
int second
= c
.get(Calendar
.SECOND
);
System
.out
.println(second
);
int week
= c
.get(Calendar
.DAY_OF_WEEK
);
System
.out
.println("当前是这周的第几天:"+week
);
Calendar c2
= Calendar
.getInstance();
c2
.set(Calendar
.YEAR
, 2022);
c2
.set(Calendar
.MONTH
, 7);
c2
.set(Calendar
.DAY_OF_MONTH
,15);
System
.out
.println(c2
);
int max
= c2
.getActualMaximum(Calendar
.MONTH
);
System
.out
.println(max
);
int days
= c2
.getActualMaximum(Calendar
.DAY_OF_MONTH
);
System
.out
.println(days
);
GregorianCalendar gc
= new GregorianCalendar();
boolean leapYear
= gc
.isLeapYear(2020);
System
.out
.println(leapYear
);
Date date
= gc
.getTime();
System
.out
.println(date
);
}
相关练习
可运用Calendar类输出一个动态日历
动态日历相关代码
public class ArrayDate {
private GregorianCalendar gc
= new GregorianCalendar();
private Calendar c
= Calendar
.getInstance();
public void arryCanlendar(int year
,int month
) {
int count
= 0;
c
.set(Calendar
.YEAR
, year
);
c
.set(Calendar
.MONTH
, month
-1);
c
.set(Calendar
.DAY_OF_MONTH
,1);
int day
= c
.get(Calendar
.DAY_OF_WEEK
);
for (int i
= 0; i
< day
-1; i
++) {
System
.out
.print("\t");
count
++;
}
Month(count
);
}
public void Month(int count
) {
for (int i
= 1; i
<= c
.getActualMaximum(Calendar
.DAY_OF_MONTH
); i
++) {
System
.out
.print(i
+"\t");
count
++;
if(count
%7 == 0) {
System
.out
.println();
}
}
}
public static void main(String
[] args
) {
Scanner sc
= new Scanner(System
.in
);
System
.out
.println("请输入年份:");
int year
= sc
.nextInt();
System
.out
.println("请输入月份:");
int month
= sc
.nextInt();
System
.out
.println("===========【"+year
+"年"+month
+"月"+"】========================");
System
.out
.println("日\t一\t二\t三\t四\t五\t六");
new ArrayDate().arryCanlendar(year
, month
);
}
}
输出效果 可以自行加上UI,实现一个日历页面