1.将字符串通过SImpleDateFormat转化成Date对象,再将Date对象转化成日期类
/**
* 思路总结:
* 1.第一步先通过具体行动把骨架建起来。
* 2.根据题意,利用日历知识解决实际问题,三个知识点
* a)本月的第一天是星期几,确定了前面的空格的个数。int w=Calendar.get(Calendar.Date)
*
* b)本月的最后一天是30还是31,还是28,决定的循环的临界值。 c)输入的字符串通过new
* simpleDateFormat("yyyy-MM-dd").parse(str)变成日期对象date。
有Calendar c =new GregorianCalendar();c.setTime(date)方法把日期对象变成日历。
*/
package cn.pmcse.array;
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;
/**
* 可视化日历
* @author Administrator
*
*/
public class Test68 {
public static void main(String[] args) {
// String temp="2020-2-2";//字符串
// DateFormat format=new SimpleDateFormat("yyyy-MM-dd");//时间格式
// try {
// Date time=format.parse(temp); //将temp转成时间对象
// Calendar calendar=new GregorianCalendar();//日历计算
// calendar.setTime(time);//
//
// System.out.println("日\t一\t二\t三\t四\t五\t六");
// int c=0;
// for(int i=1;i<32;i++) {
// System.out.print(i+"\t");
// c++;
// if(c%7==0) {
// System.out.println();
// }
// }
// } catch (ParseException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
System.out.println("输入格式为“2018-01-01”");
Scanner scanner=new Scanner(System.in);
String inputStr=scanner.nextLine();
String str=inputStr;
DateFormat fromat=new SimpleDateFormat("yyyy-MM-dd");
try {
Date date=fromat.parse(str);
Calendar calendar=new GregorianCalendar();
calendar.setTime(date);
int day=calendar.get(Calendar.DATE);
calendar.set(Calendar.DATE,1);
System.out.println("该月1号对应的Java内部周几:"+calendar.get(Calendar.DAY_OF_WEEK));//星期几 1是星期日7是星期六
System.out.println("该月份最大日期:"+calendar.getActualMaximum(Calendar.DATE));//当月最大日期
System.out.println(calendar.get(Calendar.YEAR));
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("|"+i+"|"+"\t");
}else {
System.out.print(i+"\t");
}
int xq=calendar.get(Calendar.DAY_OF_WEEK);
if(xq==7) {
System.out.println();
// xq=0;
}
calendar.add(Calendar.DATE,1);//日期+1
// xq++;
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}