java常用类中Calendar【日历】
Calendar类
Calendar:它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
一、构造方法
protected Calendar() :由于修饰符是protected,所以无法直接创建该对象。需要通过别的途径生成该对象。
二、成员方法

三、日历字段

实战例子:
package com.Lucky.OftenClass;
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;
/*
程序:可视化日历
1. 将日期字符串转换成日期Date,并赋值给Calendar
2.使用DateFormat将字符串转换成日期,然后赋值到日历calendar.setTime(date);
3.需要知道输入的日期是星期几,前面要留空格
4.cal.get(Calendar.DAY_OF_WEEK)
5.如果是星期六就要输出日期之后换行
6.cal.get(Calendar.DAY_OF_WEEK)==7
7.需要本月一共有多少天
8.cal.getActualMaximum(Calendar.DATE);
9.如果是当天就添加 *
*/
public class VisualCalendar {
public static void main(String[] args) {
System.out.println("请输入日期: 格式为:2000-09-20");
//添加扫描器
Scanner scanner=new Scanner(System.in);
//获取日期数据
String nowDate=scanner.nextLine();
//创建DateFormat对象
DateFormat format=new SimpleDateFormat("yyyy-MM-dd");
try {
//将日期字符串 转换成 日期格式数据
Date date=format.parse(nowDate);
//创建Calendar日历对象
Calendar calendar=new GregorianCalendar();
//将数据设置到日历中
calendar.setTime(date);
//获取日历中的日
int day=calendar.get(Calendar.DATE);
//将日改为1号
calendar.set(Calendar.DATE,1);
//获取这个月的最大天数:getActualMaximum
int MaxDate=calendar.getActualMaximum(Calendar.DATE);
//打印日历头部
System.out.println("日\t一\t二\t三\t四\t五\t六");
//循环获取星期几【打印空格】
for (int i = 1; i < calendar.get(Calendar.DAY_OF_WEEK); i++) {
System.out.print("\t");
}
//循环打印数字
for (int i = 1; i <= MaxDate; i++) {
//判断是否是当天 [如果是就打印一个*]
if(i==day){
System.out.print("*");
}
System.out.print(i+"\t");
//获取日历上的所在星期的第几天
int weekDay=calendar.get(Calendar.DAY_OF_WEEK);
//判断是否是星期六[SATURDAY],如果是就打印换行
if(weekDay==Calendar.SATURDAY){
System.out.println("\n");
}
//追加日期天数
calendar.add(Calendar.DATE,1);
}
} catch (ParseException e) {
e.printStackTrace();
}
}
}
浙公网安备 33010602011771号