一、初始Calendar
1、基本内容:
Calendar 是一个抽象类,不可以直接创造对象
常用的方法: get方法,传入参数:Calendar中定义的常量
set方法:可以改变Calender中的内容
2、String-->Calender
转置过程需要java.sql.Date
String--->java.sql.Date
java.sql.Date--->Calender
//分解:
//String--->java.sql.Date:
java.sql.Date date = java.sql.Date.valueOf("2020-4-5");
// java.sql.Date--->Calender
cal.setTime(date);
System.out.println(cal);
3、简单使用Calendar其中方法的代码
get方法,传入参数:Calendar中定义的常量
get(Calendar.YEAR)//获得当前年份
get(Calendar.MONTH)//获得当前月份
get(Calendar.DATE)//获得当前日(号数)
get(Calendar.DAY_OF_WEEK)//获得今天是这周的第几天(第一天为周日)
getActualMaximum(Calendar.DATE)//获取当月日期的最大天数
getActualMinimum(Calendar.DATE)//获取当月日期的最小天数
set方法:可以改变Calender中的内容,后面所输内容即为自己想改变的量
cal.set(Calendar.YEAR,1990);
cal.set(Calendar.MONTH,3);
cal.set(Calendar.DATE,16);
package com.msb.test02;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class Test06 {
public static void main(String[] args) {
//Calendar 是一个抽象类,不可以直接创造对象
//GregorianCalendar()子类 extends Calendar(父类是一个抽象类)
Calendar cal = new GregorianCalendar();
Calendar cal2 = Calendar.getInstance();
System.out.println(cal);
//常用的方法:
// get方法,传入参数:Calendar中定义的常量
System.out.println( cal.get(Calendar.YEAR));
System.out.println(cal.get(Calendar.MONTH));
System.out.println(cal.get(Calendar.DATE));
System.out.println(cal.get(Calendar.DAY_OF_WEEK));
System.out.println(cal.getActualMaximum(Calendar.DATE));//获取当月日期的最大天数
System.out.println(cal.getActualMinimum(Calendar.DATE));//获取当月日期的最小天数
//set方法:可以改变Calender中的内容
cal.set(Calendar.YEAR,1990);
cal.set(Calendar.MONTH,3);
cal.set(Calendar.DATE,16);
System.out.println(cal);
//String--->Calender:
//分解:
//String--->java.sql.Date:
java.sql.Date date = java.sql.Date.valueOf("2020-4-5");
// java.sql.Date--->Calender
cal.setTime(date);
System.out.println(cal);
}
}
二、小练习---输入日期显示台,具体到周
*代码后均有备注使用的Calendar的各种方法,请仔细阅读*
package com.msb.test02;
import java.util.Calendar;
import java.util.Scanner;
public class Test08 {
public static void main(String[] args) {
//String--->Calender:
//录入日期的(String):
Scanner sc = new Scanner(System.in);
System.out.println("请输入你想查看的日期:(提示:请按照例如2012-5-6的格式书写)");
String strDate = sc.next();
/* System.out.println(strDate);*/
//String--->Calender:
//String--->Date:
java.sql.Date date = java.sql.Date.valueOf(strDate);
//Date---->Calendar:
Calendar cal = Calendar.getInstance();
cal.setTime(date);
//后续操作:
//星期提示:
System.out.println("日\t一\t二\t三\t四\t五\t六\t");
//获取本月的最大天数:
int maxDay = cal.getActualMaximum(Calendar.DATE);
//获取当前日期中的日:
int nowDay = cal.get(Calendar.DATE);
//将日期调为本月的1号:
cal.set(Calendar.DATE,1);
//获取这个一号是本周的第几天:
int num = cal.get(Calendar.DAY_OF_WEEK);
//前面空出来的天数为:
int day = num - 1;
//引入一个计数器:
int count = 0;//计数器最开始值为0
//在日期前将空格打印出来:
for (int i = 1; i <=day ; i++) {
System.out.print("\t");
}
//空出来的日子也要放入计数器:
count = count + day;
//遍历:从1号开始到maxDay号进行遍历:
for (int i = 1; i <=maxDay ; i++) {
if (i == nowDay){
System.out.print(i+"*"+"\t");
}else {
System.out.print(i+"\t");
}
count++;//每在控制台输入一个数字,计数器做加1操作
if (count%7 == 0){
System.out.println();
}
}
}
}